ERP · TypeScript · 2026
AERIS
Bespoke business ERP: catalogue, stock, orders, shipping, invoicing and accounting
Sole architect and developer of the product
The context
A decoration SME running on three systems that did not talk to each other: a B2C WooCommerce shop, a second one for resellers, and Dolibarr for invoicing. Stock levels drifted apart, orders were re-keyed by hand, and nobody could say where a sale had come from.
The solution
A single model where stock and price live on the variant, and where each sales channel is an explicit axis rather than a copy. Existing systems were wired in as connectors rather than replaced wholesale, which allowed switching channel by channel without interrupting sales.
The architecture
AERIS replaces a patchwork of WooCommerce, Dolibarr and spreadsheets with a single system. End-to-end TypeScript monorepo: a Hono API backed by PostgreSQL through Drizzle, a React 19 and Vite admin, and a shared schema package that guarantees the front end and the API speak the same types. 143 tables, 106 API routes, 55 functional modules, around 257,000 lines.
The result
One database is authoritative. The stock pushed to marketplaces comes from the same place as the one shown in the shop, and every order carries the identifier of where it came from.
What it does
- —Variant catalogue, per-channel breakdown and pricing
- —Unified stock, alert thresholds, stocktakes and bills of materials
- —B2C and B2B orders, discount tiers, credit notes and customer wallets
- —Wave pre-orders with stock allocated at delivery
- —Multi-carrier shipping, grid by zone and weight, pickup points
- —Invoicing, intra- and extra-community VAT, customs invoices
- —Ankorstore, Orderchamp and Faire connectors, reading orders and pushing stock
- —Pennylane accounting bridge and bank reconciliation
