// the find
mrvautin/expressCart
A fully functioning Node.js shopping cart with Stripe, PayPal, Authorize.net, PayWay, Blockonomics, Adyen, Zip and Instore payments.
A self-hosted Node.js/Express e-commerce cart that runs on MongoDB and supports 8+ payment providers out of the box. Aimed at developers who want a working store without Shopify's fees or WooCommerce's PHP baggage. Good starting point for small shops that need full ownership of their stack.
Payment provider coverage is genuinely impressive — Stripe, PayPal, Authorize.net, Adyen, and even Bitcoin via Blockonomics are all wired up with config-file-driven setup rather than baked-in credentials. The JSON schema validation on payment configs is a small but smart touch that catches misconfiguration early. Docker Compose setup means you can have a running instance in minutes. Test suite covers the major flows (cart, orders, discounts, variants) with a real test data seeder, which is more than most self-hosted cart projects bother with.
Last commit was November 2023 — the project is effectively in maintenance mode, and payment provider SDKs drift fast. Adopting this means inheriting whatever breaking changes Stripe or PayPal have shipped since then. Only one storefront theme (Cloth) is included despite the themes directory structure suggesting more were planned, so any visual customization is on you from day one. The entire app is a single Express monolith with no clear separation between storefront and admin — scaling or splitting concerns later will be painful. MongoDB as the sole datastore is a hard dependency with no abstraction layer, so migrating to Postgres if you outgrow it means rewriting db.js from scratch.