A type-safe, plugin-first e-commerce engine — with native B2B, point of sale, and a truly headless API. Built for developers who are tired of fighting legacy platforms.
Why Redbird
PHP monoliths, no types, override hell. Redbird is what e-commerce infrastructure looks like when you start from scratch in 2026.
Features
Reviews, loyalty, gift cards, suppliers and more ship as free bundled modules. Install, reconfigure or uninstall live from the marketplace — no rebuild, no server restart, no core overrides.
tRPC v11 + Drizzle ORM. Your IDE knows every field of every query. No more guessing what an API returns.
Catalog, variants, cart, orders, stock reservation, promos, reviews, returns, staff RBAC, CMS — all built in.
VAT for all 27 countries (B2B reverse charge, VIES), automatic PDF invoices, Factur-X e-invoicing and FEC export — plus native GDPR data export and right-to-erasure.
No-code theming from the backoffice — colours, fonts, radius and homepage sections, applied live. Or own your frontend entirely: npx create-redbird-storefront scaffolds a type-safe React storefront you deploy anywhere.
Dashboard, orders, product management with variants + stock, customers, promotions, CMS pages — all in one SPA.
Both providers ship first-party with webhook auto-discovery, HMAC verification, and dryRun mode for testing.
Production runs on Postgres 16. Tests run in-memory with PGlite — no Docker required, full isolation guaranteed.
JWT customer auth, password reset flows, guest checkout, staff RBAC with owner/admin/warehouse/support roles.
Quote requests, Net-30 payment terms, purchase orders, and tiered group pricing — the flows legacy platforms bolt on with third-party modules, built into the core here.
Register sessions, in-person sales, real orders sharing the same stock and catalog as online. One engine, online and in-store.
A pure, type-only API surface — @redbirdshop/api-types — with zero runtime coupling to the core. Three production reference storefronts (Next.js) run on it, proving it's not just a promise.
Developer experience
Configure once, extend with plugins. Your entire store in a few lines of TypeScript.
import { createRedbird } from '@redbird/core' import { stripe } from '@redbird/plugin-stripe' import { vatEu } from '@redbird/plugin-vat-eu' import { emailResend } from '@redbird/plugin-email-resend' import { shippingFlat } from '@redbird/plugin-shipping-flat' export const redbird = createRedbird({ databaseUrl: process.env.DATABASE_URL, defaultCurrency: 'EUR', storeName: 'My Store', plugins: [ stripe({ secretKey: process.env.STRIPE_SECRET_KEY }), vatEu({ homeCountry: 'FR' }), // auto-wires to checkout emailResend({ apiKey: process.env.RESEND_KEY }), shippingFlat({ zones: [ { name: 'Europe', countries: ['FR', 'DE', 'ES'], rateAmount: 499, freeOver: 5000 }, { name: 'World', countries: ['*'], rateAmount: 1299 }, ], }), ], })
Ecosystem
Every plugin is a typed package. Payments, email, shipping, taxes — swap any provider with one line. Full features ship as installable modules.
Tech stack
Architecture & updates
Legacy platform merchants stop updating to avoid breaking their customisations. Redbird is architected so that trap can never happen.
Each merchant runs their own Node.js process and PostgreSQL database. No central Redbird cloud, no shared infrastructure, no vendor lock-in. Your data stays on your server.
your stack · your dataMinor and patch releases never break exported TypeScript types. The compiler enforces this — if @redbird/core ships a breaking change in a minor, your build fails before you even deploy.
Every schema migration uses ADD COLUMN IF NOT EXISTS. No DROP, no RENAME in minor releases. Your database is forward-compatible across every upgrade.
The SDK is the stable extension surface. Modules add backend hooks — order.paid, review.approved — plus admin pages and storefront slots, all typed end-to-end. They survive major version bumps without touching core code.
Type-safe, plugin-first, self-hosted. Start building your store today.