The commerce stack we build on, in the open
We build stores on Medusa v2 and publish the plugins that come out of that work. Every capability named on this page has documentation behind it and a repository you can read.
One backend, one admin, one place the numbers live
Medusa v2 is an MIT-licensed commerce framework that runs on your own infrastructure. Nothing here is a tier you can be moved off, and nothing is a setting screen with a ceiling.
A backend you host
Node.js and TypeScript over PostgreSQL, deployed where you choose. The database is yours, the commerce logic is code, and a rule your business genuinely needs gets written rather than worked around.
A storefront that is its own application
The shop talks to the backend over an API, so it is a Next.js application rather than a theme. Redesigning it is a frontend project, not a replatform.
An admin the plugins extend
Marketplace status, costs and margin render as extra columns in one product table. Three integrations add three columns instead of three near-identical product lists nobody keeps in sync.
Plugins
Seven plugins, each doing one job, each documented from the docs that ship in its own repository.
@zanreal/medusa-admin-kit
One extensible Catalog table in the Medusa admin, plus the column registry the other plugins write into.
Read the docszanreal-labs/medusa-admin-kit@zanreal/medusa-allegro
Allegro offers, stock and orders inside Medusa. Price automation bounded by a floor and a ceiling, order events drained continuously, and the buyer, the delivery recipient and the invoice recipient kept apart, because they are frequently three different people.
Read the docszanreal-labs/medusa-allegro@zanreal/medusa-usage
An append-only usage event log with deterministic deduplication, billing periods and rating. The deduplication key is the row's own primary key, so a retried delivery is free rather than a second charge.
Read the docszanreal-labs/medusa-usage@zanreal/medusa-usage-tinybird
A Tinybird sink for that log, for meters counting billions of events, with deduplication moved to the read path so both sinks agree.
Read the docszanreal-labs/medusa-usage-tinybird@zanreal/medusa-fx-pricing
Daily USD and EUR prices derived from the store's PLN price at the NBP mid rate, with prices a person edited by hand left alone on the next run.
Read the docszanreal-labs/medusa-fx-pricingNone of these is on the public npm registry. Each one installs as a pinned git dependency from its repository, and each keeps the Medusa packages it needs as peer dependencies, so it builds against the version you already run.
We are our own customer
Our platform's subscription and usage billing is built on a Medusa store we host ourselves. The platform reports metered facts to it over a single narrow endpoint and writes every batch to a durable outbox before the first send, so a serverless function torn down mid-request costs a delayed delivery rather than lost revenue.
Medusa is the only writer of the deduplication key. One derivation, one writer, and therefore no second charge when a delivery is retried.
That is also where the plugins came from. They were written for problems we had, and released because there was no good reason to keep them to ourselves.
See our open sourceServices
What we build with this stack, and what each piece of it looks like as a project.
Headless commerce on Medusa. A backend that is yours, not rented
Marketplace integrations. Allegro inside the admin you already use
Pricing and margin control. Currencies and costs on the same record
Invoicing and KSeF. Documents raised where the order already is
Subscription and usage billing. Charge for what was actually used
Commerce automation. The work that surrounds an order
Questions
The things worth knowing before you commission any of this.
Want to see whether this fits your shop?
Message usTell us what you sell, where you sell it and which part of the process somebody is holding together by hand.
We will tell you honestly whether this stack is the right answer, and what the first piece worth building would be.
Can't keep up with changes in AI world?
Let us do the heavy lifting. Every week we distill the most important AI developments into a focused 5-minute briefing - so you stay ahead without the noise.
Find out more