Open source · MIT licensed · Free for life

Open-source ecommerce platform

Self-hosted, free for life, and yours to brand.

Own your code. Own your infrastructure. Own your customer data.

The GoCommerce admin dashboard: net sales for the last thirty days, order, product and customer counts, a daily sales chart and a best-sellers table.

Built with

A look inside

See it before you deploy it

A GoCommerce instance runs at admin.kitcommerce.store as a public demo: the link opens the sign-in screen with the demo account filled in — press Login and look around. It is a real store you can change; every email address and phone number in it is masked, and the team, its keys and its roles are frozen.

GoCommerce / DashboardUI capture
GoCommerce dashboard detail from the seeded store: revenue, orders, products and customers, recent orders and the daily sales chart.
Revenue, recent orders and daily sales.Revenue detail from the seeded store.Full screenshot ↗

Screenshots from a seeded instance: 64 products, 260 orders across 150 days. Every screen is one of the 61 in the admin.

Why teams pick it

Self-hosted. Scalable. Fast.

Four mechanisms the GoCommerce docs describe, drawn with the names from the code. No timings or benchmark figures — none are published.

Scalable

Add processes, not coordination.

Scaling GoCommerce by adding identical processes A load balancer sends requests to three identical GoCommerce processes running the same binary; the third is drawn dashed with a plus sign to show that more can be added. There is no leader election between them. Every process reaches one PostgreSQL database through the PgBouncer connection pooler. Load balancer Same binary GoCommerce GoCommerce GoCommerce No leader election PgBouncerconnection pooler PostgreSQLone database
Run more identical processes behind a load balancer. Workers claim jobs with FOR UPDATE SKIP LOCKED, so instances need no coordination — only a shared volume for uploads.

Headless

One API, any front end.

One GoCommerce API serving every front end A storefront (Svelte Commerce or your own), a mobile app, the admin compiled into the binary, an AI agent over MCP, and Google and Meta product feeds all call GoCommerce, which serves 342 documented operations over REST with an OpenAPI description. Svelte Commerce reaches GoCommerce through an early connector (0.1.0) covering catalogue, cart, checkout and order lookup. Storefront Svelte Commerce or your own Mobile app GoCommerce 342 documented operations · REST + OpenAPI Admin compiled in AI agent via MCP Feeds Google & Meta
The storefront, the admin, an app and an agent all use the same API. Svelte Commerce reaches GoCommerce through an early connector (0.1.0) covering catalogue, cart, checkout and order lookup.

Modular

Import what you need.

GoCommerce modules are compiled in only when imported One GoCommerce binary holds the core (catalogue, cart, checkout, orders and inventory) with five imported modules docked into it: payments-razorpay, payments-stripe, fulfill-shiprocket, notify-msg91 and search-meilisearch. A dashed tile outside the binary stands for a module that is not imported, and so is not in the binary. GoCommerce One binary Core catalogue cart checkout orders inventory payments-razorpay payments-stripe fulfill-shiprocket notify-msg91 search-meilisearch not imported → not in the binary
44 modules, each a directory under ext/. Import one and it’s compiled in; leave it out and none of its code ships.

Fast

Finished HTML, one process in front of the database.

A server-rendered page beside a client-rendered bundle In the server-rendered lane, Svelte Commerce sends the browser HTML that is ready to read. In the client-rendered lane, the browser receives a JavaScript bundle, then boots it, fetches data and renders before there is a page to read. Below, separately, GoCommerce is one compiled Go process that talks to PostgreSQL. No timings are shown because no benchmark figures are published. Server-rendered · Svelte Commerce HTML, ready to read Client-rendered bundle JS bundle boot fetch render Backend GoCommerce one compiled Go process PostgreSQL
A crawler and a shopper get the page itself, not a bundle to boot. No benchmark figures are published.

Sell

A storefront buyers don’t wait for

Svelte Commerce renders every page on the server, so a shopper and a crawler both receive the page itself, not a bundle to boot. 79 live themes to start from; this one is a jewellery business selling on it today.

arialshop.com Desktop storefront

The Arialshop desktop storefront: a jewellery hero image with a shop call to action and category navigation.
Real storefront capture · Full desktop screenshot ↗

Arialshop

arialshop.com

A real production jewellery storefront running on Svelte Commerce — lab-grown diamond rings, with variants, sizing and checkout.

Visit store

Manage

Run the business from one admin

Orders, stock, customers, refunds and staff, from the 61-screen admin compiled into the GoCommerce binary. Each of these is a thing in the code, not an adjective.

Scale

From one store to a platform

A marketplace, a wholesale catalogue and several storefronts run on the same engine, without replatforming. Each is a set of records, and each page names the file that does the work.

Multi-vendor marketplace

  • Vendor accounts
  • Vendor offers
  • Moderation states
  • Commission recorded per vendor
Explore marketplace →

B2B commerce

  • Customer groups
  • Price lists
  • Quantity breaks
  • Scoped API keys
Explore B2B →

Direct-to-consumer

  • The default store
  • Cash on delivery built in
  • Manual fulfillment built in
  • Svelte Commerce in front
Explore D2C →

Build

A codebase developers actually want

A Go engine with its admin embedded, and a SvelteKit storefront — the two packages of KitCommerce, each MIT licensed and usable alone, with a documented API between them.

itswadesh/gocommerce

GoCommerce

Headless Go backend + Svelte admin. One binary, one dependency, PostgreSQL.

  • 44 modules
  • 342 API operations
  • 1,000+ tests
  • 61 admin screens

itswadesh/svelte-commerce

Svelte Commerce

Headless Svelte/SvelteKit storefront. Server-rendered, 26 backends.

  • 26 backends
  • 79 themes
  • 1,817 stars
  • 338 forks

Integrate

Developer-first integration

From catalogue to placed order in three requests, against the one-command stack. The same calls the GoCommerce README documents — no SDK, no API key for the storefront routes.

Cart to order, over HTTP

# 1 — the catalogue: public, no key
curl localhost/api/products

# 2 — open a cart and add a variant
CART=$(curl -sX POST localhost/api/carts | jq -r .data.id)
curl -X POST localhost/api/carts/$CART/line-items \
  -d '{"variant_id":2,"quantity":2}'

# 3 — check out; the same key again returns the same order
curl -X POST localhost/api/checkout/cod -H 'Idempotency-Key: demo-1' \
  -d '{"cart_id":"'$CART'","email":"buyer@example.com",
       "address":{"line1":"1 High St","city":"Town",
                  "postal_code":"12345","country":"US"}}'

Every route is in core/openapi.json and served live at /docs.

  • 342 operations, one contract238 in the core and 104 from modules, all in OpenAPI 3.0.3. The admin uses the same API a storefront does.
  • Signed webhooksEvery event POSTed with an X-GoCommerce-Signature HMAC-SHA256, retried up to 12 times with backoff, each delivery logged.
  • No SDK to wait forAnything that speaks JSON over HTTP is a client — or generate one in your language from the spec.
  • Safe to retrySend an Idempotency-Key and a repeated checkout returns the same order; a changed price answers 409 instead of charging.
  • Agents tooThe MCP server gives an AI agent 19 tools over the same services and rights.

Coding agents

Built for developers — and their coding agents

The repository is written to be read by a machine as well as a person. Claude, Codex, Cursor and Antigravity all pick up the same files; none of this implies a partnership with any of them.

Instructions are explicit

  • AGENTS.md
  • 14 architecture rules, 4 notes for agents
  • 15 task guides in skills/

Changes are testable

  • Over 1,000 tests
  • Modular packages
  • Predictable service boundaries

Runtime agents are supported

  • MCP module, 19 tools
  • Same domain services as REST
  • Read-only mode

One command

Start on your own server in minutes

Three services, one command. This compose file is served from this domain and was run end to end before it was published here.

Get it and run it

curl -O https://kitcommerce.store/docker-compose.yml
curl -o .env https://kitcommerce.store/env.example
# edit .env — it will not start while a required secret is unset
docker compose up -d

docker-compose.yml · env.example

After one command

  • PostgreSQLthe database GoCommerce owns
  • Commerce API342 documented operations
  • Admin panelcompiled into the same binary
  • Reverse proxyCaddy, so it answers on port 80

Admin

http://localhost/

Sign in with the email and password from your .env.

API documentation

http://localhost/docs

The OpenAPI contract this build actually serves.

Catalogue

http://localhost/api/products

Public and unauthenticated — the route a storefront calls.

The storefront is separate: this stack does not pair Svelte Commerce with GoCommerce. To do that, install the early GoCommerce connector (@misiki/gocommerce-connector, 0.1.0) in a Svelte Commerce checkout and point it at this stack — it covers catalogue, cart, checkout and order lookup, not customer accounts or search. See the connector status. GoCommerce builds from source on first run, because no image is published yet.

Everything in the box

The full feature list, nothing sold separately

No plugin store, no per-feature pricing. Every line below ships in the KitCommerce packages — in the GoCommerce core or as a module you import.

Catalogue

  • Products and variants
  • Attributes from Shopify’s taxonomy
  • Categories and collections
  • Custom metadata on 15 tables

Search and discovery

  • Filtering and sorting in the engine
  • Meilisearch module
  • Sitemaps and IndexNow modules
  • Google Merchant and Meta feeds

Cart and checkout

  • Guest carts and checkout
  • Idempotent, never-repricing checkout
  • Discount codes
  • Abandoned-cart recovery

Orders and fulfilment

  • Order timeline and edits
  • Shipping in parcels, 12 carrier options
  • Returns with per-line restock
  • Invoices, picking sheets, packing slips

Payments

  • Nine gateway modules
  • Cash on delivery built in
  • Refunds through the gateway
  • Payouts by payment method

Customers and B2B

  • Shopper accounts (identity module)
  • Customer groups and price lists
  • Quantity breaks
  • Reviews and wishlists

Marketplace and multi-store

  • Vendors, moderated, with their own logins
  • Channels with their own price lists
  • Roles and scoped API keys
  • Stock across locations

Content and messaging

  • CMS pages, menus and FAQ
  • Newsletter and Klaviyo
  • Email: Resend, SendGrid
  • SMS: Twilio, MSG91

Infrastructure

  • One Go binary and PostgreSQL
  • 342 operations in OpenAPI
  • Signed webhooks, events never lost
  • gocommerce doctor and an MCP server

Works with what you already run

  • Stripe
  • Razorpay
  • Adyen
  • Shiprocket
  • Delhivery
  • Twilio
  • SendGrid
  • Meilisearch
  • 44 modules →

How it goes

From download to your first order

  1. Download and runOne command brings up PostgreSQL, the API with its admin, and a proxy on port 80.The command
  2. Configure your storeCatalogue, payment methods, shipping zones, tax rates and staff — all from the admin.What the admin does
  3. Customise itImport the modules you need, change the storefront’s Svelte components, and let a coding agent read AGENTS.md first.44 modules
  4. Launch on your infrastructureYour server, your domain, your PostgreSQL backups — and your brand on all of it.Open source

In production

See what stores are running

8 live stores run Svelte Commerce today, each with the Lighthouse scores it actually got on 25 September 2026. None runs GoCommerce yet.

Ownership

Keep the freedom of self-hosting

One plan, and it is free, for life. The software costs nothing; hosting and third-party services still cost what they cost.

  • MIT licensed
  • Your infrastructure
  • Your database
  • Fork and white-label
  • No hosted tier to outgrow
  • 0% of your sales

Get going

Download it. Build with us.

Download and build

Both repositories are public and MIT. Clone them, run them, change anything.

Get the source

Ask the community

Questions go in public, where the people who build both packages answer them.

Join the Discord

Have it built for you

The team behind both packages takes on custom builds — themes, integrations, whole stores. Tell them what you need.

Talk to the team on WhatsApp

FAQ

Questions

What is GoCommerce?

GoCommerce is an open-source, headless ecommerce backend built with Go and PostgreSQL, with a Svelte-based admin compiled into the same binary. It serves 342 documented operations over REST.

What is Svelte Commerce?

Svelte Commerce is an open-source headless ecommerce storefront built with Svelte and SvelteKit. It reaches a commerce backend through a connector package, and 26 connectors exist today.

What is KitCommerce?

KitCommerce is an open-source ecommerce platform. Its packages are GoCommerce, the backend and admin, and Svelte Commerce, the storefront — MIT licensed, used together or either one on its own. It is free, self-hosted and has no paid editions.

Can I self-host them?

Yes. Both packages are MIT licensed and designed to run on your own infrastructure: GoCommerce is one binary and one PostgreSQL, Svelte Commerce is a Node server. The compose file on this site runs the backend, its admin and a proxy on port 80 in one command.

Is there a platform fee or a paid plan?

No. There is one plan and it is free, for life: no fee on your orders and no hosted tier to graduate to. Your own servers, domains and third-party services still cost what they cost — the software is free, hosting is not.

Can I white-label it?

Yes. Both packages are MIT, so you can rename them, restyle the storefront and the admin, and ship them under your own brand for yourself or for clients. Keeping the copyright notice in the source is the only condition.

Can GoCommerce and Svelte Commerce work together?

Through an early connector: @misiki/gocommerce-connector 0.1.0 lets Svelte Commerce browse a GoCommerce catalogue, fill a cart, check out and look up an order. Customer accounts and a search index are not covered yet. Either package also works alone: GoCommerce with any HTTP client, Svelte Commerce with 26 other backends.

How do I get started?

Download docker-compose.yml and env.example from this site, set your secrets in .env, then run docker compose up -d. The admin answers on http://localhost/, the OpenAPI docs on /docs and the catalogue on /api/products. Everything deeper — your own PostgreSQL, modules, the storefront profile — is in the GoCommerce README.

A store on your own server, in one command

PostgreSQL, the API with its admin, and a proxy on port 80.

Chat on WhatsApp