← All work
CommissionedIn development

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, 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 behind guards, and data fetching runs through a single layer that quietly renews an expired session and replays the request. The result is a platform that behaves like one product even though it’s assembled from clearly separated planes.