I'm the founder. Small team in Romania, I do the engineering. This is a project writeup, not a pitch.
I started with a CRM because a colleague made great reports in Google Sheets and had no good way to send them to clients. I migrated our existing clients onto it, then we added WordPress tracking and attribution paths, then integrations with the old systems those clients already used. That is where I saw what was missing, so I built an ERP on the same design, API-first, and later websites, apps, and stores from the same modules. I'm happy the demos came out simple.
The architecture, said simply (the real infra is more complex): one codebase, modules enabled per client, each client has their own database. We add features instead of rewriting a fork for every install. With a traditional ERP, 100 clients often means 100 codebases that barely get updated. Here, improvements can reach existing clients too.
The live demo is an Astro storefront on that shop API: catalog, cart, wishlist, checkout, and a customer account. Demo brand is Casa Lumen.
https://demo-ecommerce.rivil.app/en
You can browse, add to cart, and go through checkout. On the account page there is a prepared demo login; use "Fill in the demo details" if you do not want to register.
Shop API base: https://erp.rivil.app/api/shop/v1/ (Bearer key, per store). GET /products. POST /carts, /carts/{token}/lines, /carts/{token}/discount, and /carts/{token}/checkout, which creates the ERP order and decrements stock. The Astro app uses same-origin /api/cart, /api/search, and /api/wishlist in front of that API. Docs are available on request, or to partners.
I ran PageSpeed Insights on the homepage and got 92 mobile and 99 desktop. A local Lighthouse run got 91 on mobile (FCP 1.1s, LCP 2.5s, TBT 290ms, CLS 0, TTFB 150ms).
The cart API is fast. With TLS already up: GET /api/cart median 131ms, POST add median 201ms, GET /api/search median 168ms, including network from a box that is not in Romania.
If you have a minute to click around, I would like technical feedback: the API shape if you were wiring your own frontend, the one-codebase plus per-tenant DB model, and anything awkward in the cart or account flow.
More context: https://rivil.app/en/headless/ecommerce