CMS · API · Shop — one Node process you own
Pour it into
whatever you built.
AstroBaaS is the content, the catalogue and the checkout behind your site. It answers JSON over HTTP and holds no opinion about the front — Next, Astro, a template you bought, or the thing you vibe-coded on Sunday. Same data, whatever you pour it into.
The same liquid
One backend.
Any front you like.
Headless means the shop and the CMS stop being the same decision. Build the front end however you want to build it; this answers to all of them the same way.
Already built, already running
What it does
before you write anything.
- Content
- Posts, pages, categories, a sanitising editor, scheduled publishing and revisions. Content is HTML, not a block tree, so anything downstream can just render it.
- Commerce
- Products with variants, stock, orders, customers, shipping zones, coupons, tax classes and hosted checkout. Money is integer cents, computed in one place.
- Media
- Every upload records its dimensions and generates a fixed set of WebP sizes at 400, 800 and 1600 — so your storefront builds a srcset instead of running an image optimizer.
- Languages
- English, Greek and German in the admin and on the storefront, and any other you add. Greek search matches Latin spelling in both directions, because half a Greek catalogue is typed each way.
- Plugins
- A module can add API routes, admin screens, storage, payment providers and migrations without touching core. That is how the optical vertical ships separately from the CMS it runs on.
- Traffic
- A redirect map the shop owner edits, and a report of the dead addresses costing money — sorted by how many arrived carrying an ad click id.
- Operations
- A health check that encodes a test image, writes a probe file and counts on the real rate limiter, then answers 503 when any of it is broken. A deploy script can just assert it.
- Storage
- A JSON file, SQLite, or libSQL/Turso. Same API, same tests, chosen with one environment variable — start on a file and move when it matters.
Not a demo
It is already
somebody's Monday.
Four sites in production, and the interesting thing about them is how little they have in common: two opticians in Greece, a publication with no catalogue at all, and a photo studio where the media pipeline is the whole product. Ten more are being built on it now.
optikigwnia.gr
Frames, lenses and contact lenses, with prescriptions validated at checkout. The optical module was built for this shop and everything in it came from a real Tuesday.
gr-optics.com
The second shop on the same core, the same modules and its own catalogue — the install that proved a vertical could ship to two businesses without either one forking it.
A blog
No catalogue, no checkout, no commerce module. Posts, categories, scheduled publishing and a feed — the CMS half of it standing on its own, which is the case that proves it is not only a shop system.
A photo studio
Galleries and commissions, where the media pipeline is the whole product: full-resolution originals kept and downloadable, web-ready sizes generated at upload, and EXIF stripped before anything is published.
The deal, plainly
Free to run.
Paid to specialise.
The core
Everything on this page. Clone it, run it, change it, sell what you build on it. One process, your server, your database, your data. No seat count, no metering, and nothing that stops working if a company does.
The specialised parts
Trades whose products need more than a generic catalogue — opticians first, with prescriptions, frame geometry and fit tolerance. They install as plugins and are how the core stays funded and free. No licence check ever gates the core.