The commerce backend
you can run yourself.

Catalog, checkout, content and email in one core, behind a typed API. Hosted by Stellar Hosting or on your own servers.

The Noord & Field storefront home page, built on the Astro starter
The storefront you build: Noord & Field, the reference shop on the starter
The Stellar Commerce Admin showing the Orders list
The Admin your team gets

Four subscriptions.
One core.

A typical headless stack rents a commerce API, a CMS, a search index and an email service, then keeps them in sync. Stellar Commerce ships them as one Rust core on one PostgreSQL database, with one Admin.

Commerce

Published catalog, contextual prices, exact tax, ledger inventory, carts, checkout, orders, returns and claims.

Content

Pages, navigation, localized content, content models and a media library, published on your terms.

Catalog search

A rebuildable search projection over your published products, served from the same API as everything else.

Email

Order confirmations, account mail and reminders rendered from versioned templates and sent through your provider.

Your frontend.
Our contract.

Install the SDK

One TypeScript package generated from the versioned OpenAPI contract. Fetch-based and framework-free.

Point it at your Store

A publishable key and a sales channel are all a client needs. Shopper sessions stay on your server.

Ship what you want

Astro, Next, a native app or a trade portal. The reference storefront and the starter show one way; nothing forces you to copy it.

check-connection.ts
import {
  createClient, getStorefrontContext, listStoreProducts,
} from '@stellarcommerce/sdk';

const client = createClient({
  baseUrl: process.env.STELLAR_COMMERCE_API_URL,
  auth: (scheme) => (scheme.name === 'x-publishable-key' ? key : undefined),
  headers: { 'X-Sales-Channel-Id': channelId },
});

const context = await getStorefrontContext({ client });
const products = await listStoreProducts({
  client,
  query: { limit: 3, sort: 'published_at_desc' },
});

// Connected to Store st_7f2… (EUR, nl-NL), 3 products

Engineering

Exact where it matters.

Prices are decimals, not floats.

Every price, tax component and total is exact decimal arithmetic. Net plus tax equals gross, on every line, in every currency.

One offer, one transaction.

Price, tax and stock for a product are read in one database snapshot. A shopper never sees a price from one moment and stock from another.

Orders are snapshots.

An order keeps the prices, rates and discounts that applied when it was placed. Later changes to your catalog never rewrite history.

Every tenant is isolated at the database.

Row-level security and per-transaction tenant scoping from the first migration. Not a filter in application code.

A back office your team will actually open.

Eight destinations, one level of boxes, and the scope named on every page. Orders, products, customers, discounts, content, reports and settings for every Store on the account.

The Admin Products catalog with the Views and Import / export panels

Several Stores, one account

Separate catalogs, customers and content per brand, with products shared where you want them.

Customer groups and B2B prices

Group prices, quantity tiers and scheduled price lists. The wholesale client is a working example.

Promotions and gift cards

Codes, automatic discounts, Buy X Get Y, stackable by rule. Gift cards and store credit with exact settlement.

Webhooks and product feeds

Signed deliveries with retries, analytics events and a Google Merchant Center feed.

Team roles with MFA

Invitations, roles per Store, one-time codes and recovery codes. Platform operators are a separate login.

Saved views and imports

Save filters per person or device, import and export the catalog as a spreadsheet.

Hosting

Run it your way.

Hosted by Stellar Hosting

We run the core, the worker, the database, backups and upgrades. You get a Store, an Admin and API keys after signing up, and you build the frontend.

On your own servers

The same release as one API binary, one worker and PostgreSQL. Install, upgrade, backup and restore guides are part of the product, not a support ticket.

Start with a Store,
not a migration project.

Create an account, get a Store and connect the starter. Your existing shop keeps running while you build.