Arkitektur i overblik
Platformen er en headless, multi-tenant, lagdelt modulær monolit. Det betyder: ét API, ét backoffice, én database – og frontends, der er helt adskilt fra resten.
Lagene#
- Routes modtager forespørgsler, validerer input og kalder en service. Ingen forretningsregler her.
- Services ejer forretningsreglerne og er det eneste lag, der taler med databasen.
- Domænet kender kun grænseflader (betaling, fragt, markedspakke) – aldrig en bestemt udbyder.
- Adaptere er de konkrete forbindelser til Wompi, Stripe, kurerer, e-mail osv.
Isolering mellem shops#
Hver række i databasen har et tenant_id, og databasen håndhæver med Row Level Security, at en forespørgsel kun ser sin egen shops rækker. Isolationen dækkes af automatiske tests.
Teknologi#
TypeScript overalt. API: Node.js og Fastify. Database: PostgreSQL med Drizzle. Backoffice: React (Vite) med Tailwind. Storefront-skabelon: Next.js.
Principper der beskytter dig som frontend-bygger#
- Serveren regner. Pris, moms, fragt, lager og totaler beregnes altid i API'et. En frontend kan ikke ændre dem.
- Ordrer er uforanderlige, når de er oprettet.
- Betaling bekræftes kun af udbyderen (webhook eller afstemning) – aldrig af browseren.
/v1ændres kun additivt. En selvhostet frontend skal ikke gå i stykker, fordi vi opdaterer.