The deal, plainly
Free to run.
Paid to specialise.
The core is GPL-3.0 and stays that way. It is funded by selling plugins — never by holding part of the core hostage, and never by a licence check anywhere on a request path.
The core
Content, commerce, media, languages, plugins, traffic recovery, operations and three storage drivers. 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 plugins
What needs a credential, a per-country obligation, or a support commitment. They install through the same plugin API anybody else can use, they are switchable feature by feature rather than by one master toggle, and they are how the core stays funded and free.
Where the line is
Seams, not
licence checks.
No licence gating, ever. The line is drawn by seams: the core owns the interface and an honest hand-modelled implementation; a paid pack owns what needs a credential, a per-country obligation, or a support commitment. Storing price history is core; the maintained per-country Omnibus display pack is paid. Computing tax from a rate table is core; maintaining twenty-seven countries’ rates is paid.
A merchant must never be unable to comply with the law because they did not pay. That outranks the commercial logic wherever the two disagree.
Free, however big the shop gets
What you never
have to buy.
- The whole catalogue, cart, checkout, orders, customers, coupons and shipping
- Basic weighted search, including Greek matching Latin spelling both ways
- Recommendations that need no personal data — bought together, also viewed, best sellers
- Price history, and the storage the Omnibus rules are computed from
- Tax computed from a rate table you maintain
- GDPR export and erase, consent categories, and the audit trail
- All three storage drivers, the plugin API, the theme API, and every hook
The paid tier, in full
Nine plugins.
Two of them exist.
The status line is the important one. Two of these run in production today; the rest are planned, and a page that let you mistake the second kind for the first would be the most damaging thing on this site.
- @astrobaas/optical
- Running in productionThe optical vertical: prescriptions validated to optometric ranges, frame geometry, face measurements, fit tolerance, and public schema endpoints a storefront can render a form from.
- @astrobaas/iris
- Built; awaiting merchant documentationGreek IRIS instant bank transfer, where the merchant’s mobile number is the payment id. It is a payment-provider plugin like any other.
- @astrobaas/ecommerce-plus
- PlannedDepth for larger shops on top of the free core, never in place of it: segments, abandoned-cart and back-in-stock and post-purchase flows, product feeds for Google Merchant and Meta, and server-side events. Everything in it sits behind the existing marketing consent category and the GDPR export and erase paths.
- Advanced search
- PlannedField weighting, typo tolerance, synonyms and facets, on top of the basic weighted search that stays free in the core.
- Payment gateways
- PlannedPSP adapters beyond the free manual methods — Stripe, Adyen, PayPal, buy-now-pay-later. The gateway is the paid seam; taking an order is not.
- Compliance packs
- PlannedGreek myDATA e-invoicing, EU VAT with OSS and IOSS, Peppol, per-category GPSR templates. The obligation each of these tracks changes by country and by year, which is the support commitment being sold.
- Carrier connectors
- PlannedUPS, DHL, DPD, ELTA and Speedex: live rates, labels and tracking sync. Each one is somebody else’s API contract to keep working.
- Retention & revenue
- PlannedSubscriptions and recurring billing, loyalty and rewards, gift cards, referrals, a reviews aggregator that pulls from external platforms, and a paywall for publications.
- White-label
- PlannedA rebranded admin for agencies shipping AstroBaaS to their own clients.
The same shape, other trades
What a module is,
so you can judge the next one.
A vertical belongs in a module when its products carry structured attributes that need validating, and a generic catalogue would reduce them to free text. Anything else belongs in the core, for free.
- Fits
- Optical — prescriptions validated to optometric ranges, frame geometry, fit tolerance; built for a working optician and running in two shops. Pharmacy — batch numbers, expiry, restricted categories. Automotive parts — fitment by make, model and year. Jewellery — engraving, sizing, hallmark. Wine — vintage, region, age verification.
- Does not fit
- A theme. A field you could add with a plugin in an afternoon. And nothing a merchant needs in order to obey the law: storing price history and computing tax from a rate table are core and stay core. The paid pack is the maintained per-country table on top, never the ability to comply at all.
- The rule
- No licence check ever gates the core, and a module never becomes a condition of the core working. If a module is removed, everything else keeps running — and the health check tells you the module is gone rather than failing quietly.