Multi-vendor marketplace
- Vendor accounts
- Vendor offers
- Moderation states
- Commission recorded per vendor
Self-hosted, free for life, and yours to brand.
Own your code. Own your infrastructure. Own your customer data.
Built with
A look inside
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.
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
Four mechanisms the GoCommerce docs describe, drawn with the names from the code. No timings or benchmark figures — none are published.
Scalable
FOR UPDATE SKIP LOCKED, so instances need no coordination — only a shared volume for uploads.Headless
Modular
ext/. Import one and it’s compiled in; leave it out and none of its code ships.Fast
Sell
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.
Manage
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
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.
Build
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
Headless Go backend + Svelte admin. One binary, one dependency, PostgreSQL.
itswadesh/svelte-commerce
Headless Svelte/SvelteKit storefront. Server-rendered, 26 backends.
Integrate
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.
X-GoCommerce-Signature HMAC-SHA256, retried up to 12 times with backoff, each delivery logged.Idempotency-Key and a repeated checkout returns the same order; a changed price answers 409 instead of charging.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.
AGENTS.mdskills/One command
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 up -d
✔ Container postgres-1 Healthy
✔ Container gocommerce-1 Started
✔ Container web-1 Started
$ curl -s -o /dev/null -w "%{http_code}" localhost
200 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
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.
How it goes
AGENTS.md first.44 modulesIn production
8 live stores run Svelte Commerce today, each with the Lighthouse scores it actually got on 25 September 2026. None runs GoCommerce yet.
jewelwesell.com
Fine jewellery and custom designs — diamond rings and necklaces, sold manufacturer-direct.
jewelsonfire.com
Earrings, pendants, bracelets and rings, and custom pieces made to order, shipping in the US.
Ownership
One plan, and it is free, for life. The software costs nothing; hosting and third-party services still cost what they cost.
Get going
Both repositories are public and MIT. Clone them, run them, change anything.
Get the sourceQuestions go in public, where the people who build both packages answer them.
Join the DiscordThe team behind both packages takes on custom builds — themes, integrations, whole stores. Tell them what you need.
Talk to the team on WhatsAppFAQ
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.
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.
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.
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.
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.
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.
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.
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.
PostgreSQL, the API with its admin, and a proxy on port 80.