Now open source — Star on GitHub →

Open Source E-Commerce. AI-Native. Plugin-First.

No vendor lock-in. No monthly fees. TypeScript end-to-end.

$npx create-forkcart@latest my-store

Everything you need. Nothing you don't.

Built for modern commerce, designed for developer happiness.

🤖

AI Built-In

Generate product descriptions, optimize SEO, and power chatbots — all out of the box. AI is a first-class citizen, not a plugin.

🧩

Plugin System

Interface-based architecture. Swap payments, search, shipping — anything. Build plugins in TypeScript with full type safety.

🌍

Multi-Language

i18n from day one. Products, categories, pages — everything translatable. Because commerce is global.

🎨

Page Builder

Drag & drop page builder with live preview. Theme settings, custom blocks, and full control over your storefront.

🔍

Smart Search

Instant search overlay with ranking, analytics, and autocomplete. Understand what your customers want.

💳

Flexible Payments

Stripe built-in, more coming. The payment plugin interface makes adding any provider straightforward.

Plugins are just TypeScript interfaces.

No magic. No decorators. No framework lock-in. Implement an interface, register your plugin, and you're done. Full type safety, full IDE support.

  • Interface-based — implement what you need
  • Hot-reloadable in development
  • Full TypeScript autocompletion
  • Zero boilerplate configuration
my-payment/index.ts
// plugins/my-payment/index.ts
import type { PaymentPlugin } from "@forkcart/core";

export default class MyPaymentPlugin implements PaymentPlugin {
  name = "my-payment";

  async createCheckout(cart: Cart): Promise<CheckoutSession> {
    // Your payment logic here
    const session = await myProvider.createSession({
      amount: cart.total,
      currency: cart.currency,
      items: cart.items.map(item => ({
        name: item.product.name,
        quantity: item.quantity,
        price: item.price,
      })),
    });

    return { id: session.id, url: session.url };
  }

  async handleWebhook(payload: unknown): Promise<void> {
    // Handle payment confirmation
  }
}

How ForkCart compares.

The features you need, without the lock-in you don't.

🍴 ForkCartShopifyMedusaSaleor
Open Source
AI Built-in
Plugin System
Apps
Modules
Apps
Page Builder
Multi-Language
Self-hosted
TypeScript
End-to-end
Liquid
Python
No Monthly Fees
Smart Search
Basic

Built for developers.

Modern stack. No legacy. No compromises.

TS

TypeScript

End-to-end type safety. Frontend, backend, plugins — everything.

Hono

Ultra-fast web framework. Edge-ready, lightweight, and familiar.

💧

Drizzle ORM

Type-safe SQL. No magic strings, no runtime surprises.

🐘

PostgreSQL

Battle-tested. Reliable. The database your data deserves.

⚛️

React

Admin panel and storefront. The ecosystem you already know.

Vite

Lightning-fast dev server. Instant HMR. No more waiting.

Ready to fork the cart?

Start building your store in minutes. Open source, forever free.