Skip to content
bizdia.
// the platform

The commerce platform, not just a cart.

Self-signup, per-tenant domains, firewalled admins and per-store integrations — the control-plane pieces that open-source carts leave you to build. Bizdia ships them as modules, each built once and configured per store.

// module inventory

What's built, what's next.

Each module is simultaneously a capability our founding merchant uses today and a sellable feature for every tenant tomorrow.

M01Shipped

Tenant provisioning & domain routing

One channel per store, a firewalled admin, and hostname→channel resolution so a merchant's own domain serves their store with zero storefront config.

Your own store on your own domain.
M02Shipped

ShipStation order push

Per-store credentials in the platform's settings store. Orders flow out to ShipStation and on to Amazon FBA/MCF or your own 3PL — no glue code.

Orders reach fulfillment automatically.
M03Shipped

Themes — branding + templates

Three brandable themes apply your colors, logo and type as data over the template. One storefront codebase; the look is per-store, zero front-end code.

Pick a design, brand it, zero code.
M06Shipped

Own-your-database foundation

Self-hosted on PostgreSQL 17 with an open-source commerce core. Export everything; run it on your own infrastructure whenever you want.

No proprietary lock-in, ever.
M05Beta

Merchant self-signup

Registration provisions a real channel, a firewalled admin role and an administrator, checkout-ready. Currently access-gated; metered billing and email verification are the next gates.

From request to a live store in minutes.
M04On the roadmap
signature edge

Fitment catalog engine

A CompatibilityListing entity points thousands of model-specific pages at one ProductVariant — unique per-model copy, JSON-LD, canonical, sitemap. Spec'd and in development.

Our signature edge — in development.
// how it's wired

Multi-tenancy, done at the primitive level.

Not a bolt-on. The tenant boundary runs through the channel, the router, the roles and the settings store.

Tenant = Channel

One isolated channel per store. Provisioning creates the channel, a scoped admin role, an administrator and a domain mapping — atomically.

Hostname → channel routing

Middleware resolves the incoming Host header to a channel token, so a merchant's own domain serves their store with zero storefront config.

Firewalled admin

Tenant admins get a role template scoped to their own channel — deliberately excluding anything that could leak across tenants.

Per-store configuration

Modules store per-channel config in the settings store (ShipStation keys, theme + branding), each gated by a module-specific permission.

Own-your-database core

PostgreSQL 17 and an open-source commerce core. Self-host it, or run managed — either way the schema and the data are yours.

One codebase, many looks

The storefront is entirely data-driven per channel. Themes make the look per-tenant, so one deployment serves every store's domain.

// the stack

Boring where it counts.

A monorepo you can read: an open-source commerce core for the GraphQL shop and admin APIs and a React dashboard; a Next.js 16 storefront with the App Router; PostgreSQL 17 underneath; a reverse proxy terminating TLS per domain. No magic, no lock-in.

Provision your first tenant
bizdia/
├─ apps/
│  ├─ server/       # commerce core — GraphQL + dashboard
│  ├─ marketing/    # bizdia.com (this site)
│  └─ storefront/   # Next.js 16 — per-tenant stores
├─ plugins/
│  ├─ tenant/       # channel-per-store + routing
│  ├─ shipstation/  # order push
│  └─ theme/        # branding + templates
└─ postgres 17      # your database
// see it live

Provision a real tenant and look inside.

Sign up and Bizdia creates a live channel, a firewalled admin and your account — then explore the same dashboard every merchant gets.