finds.dev← search

// the find

mrvautin/expressCart

★ 2,253 · JavaScript · MIT · updated Nov 2023

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.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →