← All work
CommissionedLive

Cartobol

A B2B storefront and back office for machinery spare parts.

Sector
Industrial supply
Client
Cartobol
Role
Full-stack developer, sole build
Year
2026

Cartobol sells machinery spare parts to other businesses, which makes the “boring” parts the hard parts: catalogue integrity, pricing and shipping math, and an admin surface that a non-technical team can actually run.

One monorepo, cleanly layered

The whole thing is one Turborepo monorepo: an Express 5 API written in ESM and a React SPA on Vite. The API is deliberately layered: routers are split by audience, validators sit at the route boundary so no controller ever sees an unchecked body, controllers stay thin and pass errors on, and services hold every database query and business rule. Cross-cutting work (pricing, shipping, catalogue mapping and media handling) lives in dedicated helpers rather than being smeared across controllers. Failures are held to the same discipline: a single layer turns every kind of error (validation, database, payment) into one consistent response shape, so the client only ever has one error format to handle.

Behaving like one product

On the front, routes are lazy-loaded and split by access level, and all data fetching runs through a single layer that handles sessions and errors in one place. To the people using it, the platform feels like a single product.