Star on GitHubMIT Licensed

Ship your store, not just an API

The only open-source e-commerce platform with API and storefront. TypeScript end-to-end. AI-native. Plugin-first.

terminal
$ npx create-forkcart my-shop
✓ Downloaded ForkCart
✓ Installed dependencies
🚀 Launching setup wizard...
✓ Open localhost:4200 in your browser
WordPress-style installer
One port, everything included
No vendor lock-in
Free forever

Everything included

Not headless. Not half-baked.

Every feature you need to run a production store — storefront, admin, API, and everything in between.

Products & Catalog

Variants, options, categories. Full-text search with ranking, instant Cmd+K search, SEO optimization, reviews, and wishlists.

Orders & Checkout

Cart management, guest checkout, coupon system (%, fixed, free shipping), and full order lifecycle management.

Payments

Plugin-based payment system with Stripe included out of the box. Webhook verification, secure processing.

AI-Native

Product descriptions, smart search, chatbot, auto SEO. Provider-agnostic — works with OpenRouter, OpenAI, Anthropic, Google.

Page Builder

20+ drag-and-drop blocks for dynamic shop pages. Build landing pages, product showcases, and content — no code required.

Web Installer

WordPress-style setup wizard. Three clicks to a running store — database, admin, demo data. No terminal knowledge needed.

i18n & Multi-Currency

URL-based locale routing, multi-currency support, GDPR cookie consent. Tax zones with EU VAT validation.

Security

Bcrypt hashing, rate limiting, Stripe webhook verification, Zod validation, XSS protection, and role-based access control.

Admin Dashboard

Product, order, and customer management. Email logs, coupon analytics, search analytics, translation manager, and cache controls.

Plugin System

Extend everything.
Break nothing.

Hook-based plugins with typed settings, event hooks, price filters, and storefront slots. Ship features without forking the core.

  • Typed settings with secret support
  • Event hooks for order, product, and user lifecycle
  • Price and data filters
  • Storefront slot injection
  • 5 plugin types: feature, payment, shipping, email, AI
my-plugin.ts
import { definePlugin } from '@forkcart/plugin-sdk';

export default definePlugin({
  name: 'my-plugin',
  version: '1.0.0',
  type: 'feature',

  settings: {
    apiKey: { type: 'string', required: true, secret: true },
  },

  events: {
    'order:created': async (order) => {
      // notify, sync, anything
    },
  },

  filters: {
    'product:price': (price) => price * 0.9,
  },
});

Why ForkCart

Complete stack vs. headless-only

Every open-source competitor gives you an API. ForkCart gives you the whole store.

FeatureForkCartMedusa.jsVendureSaleorShopware
LanguageTypeScriptTypeScriptTypeScriptPython / GraphQLPHP
StorefrontIncluded❌ Headless only❌ Headless only❌ Headless onlyTwig
Page BuilderDrag & DropShopping Experiences
AI Built-inNativeVia plugins
Plugin SystemHook-based SDKModulesPluginsAppsPlugins
Web InstallerWordPress-style
Self-hostedYesYesYesYesYes
LicenseMITMITMITBSDMIT

Tech Stack

Modern tools.
Zero legacy.

Built on the latest TypeScript ecosystem. No PHP, no Java, no runtime surprises. Every layer is typed, tested, and fast.

API
Hono
Admin
Next.js 16
Storefront
Next.js 16
Database
PostgreSQL + Drizzle
Language
TypeScript strict
Monorepo
pnpm + Turborepo
architecture
Client Request
    │
    ▼
┌─────────────┐
│  Hono Route │  ← API Layer
└──────┬──────┘
       │
       ▼
┌─────────────┐
│   Service   │  ← Business Logic
└──────┬──────┘
       │
       ├──────────────┐
       ▼              ▼
┌────────────┐  ┌───────────┐
│ Repository │  │ EventBus  │
└─────┬──────┘  └─────┬─────┘
      │               │
      ▼               ▼
┌────────────┐  ┌───────────┐
│ PostgreSQL │  │  Plugins  │
└────────────┘  └───────────┘

Ready to fork?

Get a full e-commerce stack running in under 5 minutes. No vendor lock-in. No monthly fees. Just your store.

$ npx create-forkcart my-shop