// the find
openshiporg/openship
multi-channel fulfillment at scale
Openship is an order routing layer that sits between your sales channels (Shopify, WooCommerce) and fulfillment destinations (3PLs, supplier stores, custom webhooks). It's for small-to-mid e-commerce operations running multi-channel fulfillment who want something self-hosted instead of paying for Linnworks or ShipBob. Built on Next.js 15 + KeystoneJS 6 + Prisma + Postgres.
The shop/channel/link/match model is well-thought-out — it handles both the simple case (route all orders from shop A to channel B) and the fine-grained case (match specific SKUs to different suppliers) without collapsing them into one overcomplicated abstraction. The one-click Vercel and Railway deploys with auto-migration are genuinely good DX for something this complex. The MCP transport endpoint (`/api/mcp-transport`) is a smart addition — it means you can wire this into an AI agent for order decisions without writing a custom integration. The integration handler pattern (`/api/handlers/shop/[shopId]`, `/api/handlers/channel/[channelId]`) makes adding new connectors straightforward without touching core routing logic.
KeystoneJS 6 is a risky foundation — it has a history of slow releases, the GraphQL-everything approach adds latency for simple reads, and you're essentially locked into its schema system which makes non-trivial customizations painful. The webhook reliability story is thin: there's mention of retry mechanisms in the README but no evidence in the directory tree of a proper job queue (no Bull, no pg-boss, no visible queue implementation) — if your 3PL's webhook endpoint is down, it's unclear what actually happens to that order. The AI chat sidebar embedded in the admin dashboard feels bolted on rather than load-bearing — it's there but the `MULTI-CLAUDE-SETUP.md` and `ARCHITECT-PROMPT.md` files in the root suggest the project itself was partly built with AI assistance, which isn't a problem, but the AI features in the product aren't clearly motivated. Multi-tenancy appears absent — this is a single-tenant deployment per business, so if you're building a platform on top of it, you're on your own.