Frontend
Lives inside the client's webroot at /shop/. Renders product pages, category grids, the homepage. Outputs full SEO metadata including JSON-LD Product schema on every URL. Once it's there it never needs touching.
OPEN-SOURCE · MIT · v1.0.0 · COMING SOON
// what it is
Nano Cart solves a specific problem: small businesses that want a beautifully-presented product catalogue on their static site, but don't need a full e-commerce platform. 20-50 products is the sweet spot. Scales to 150+ if needed.
It is deliberately not a general-purpose shop. Single-purchase only. No variants. No quantity selectors. No inventory tracking. No cart aggregation. Each product links to one external checkout URL — Stripe Payment Link, PayPal hosted button, Square checkout, Gumroad, Ko-fi, anything that produces a URL. If you sell t-shirts in five sizes and twelve colours, Nano Cart isn't for you. If you sell hand-thrown pottery, books, prints, services, or anything else where each product is bought one at a time at a fixed price, this is for you.
// how it works
Lives inside the client's webroot at /shop/. Renders product pages, category grids, the homepage. Outputs full SEO metadata including JSON-LD Product schema on every URL. Once it's there it never needs touching.
A universal folder, identical for every site. Upload it via SFTP when you manage products. Configure your shop. Remove the folder when done. No persistent admin = drastically reduced attack surface.
Password hash, licence key and shop settings live in a JSON file outside the document root, structurally unreachable via HTTP. Backup is rsync /products/ /media/ /config.json. That's the entire shop state.
/public_html/shop/ // permanent ├── products/ JSON files (the "database") ├── categories/ Category metadata ├── media/ Uploaded product images ├── core.php Parser, renderer, ~600 lines ├── index.php Homepage with featured products ├── product.php Single product page ├── category.php Category browsing └── template.php Per-site HTML wrapper /shop-config/ // OUTSIDE webroot ├── config.json Password, licence key, shop mode └── rate-limit.json Login attempt tracking /public_html/shop/admin/ // ephemeral Uploaded via SFTP to manage products, removed after.
// modes
Each product gets a checkout_url pointing to your processor of choice. Nano Cart renders its own styled buy button linking to external checkout — Stripe, PayPal, Square, Gumroad, Lemon Squeezy, Ko-fi, Bandcamp, anything that produces a URL. No payment processing on your server. No PCI compliance to worry about. No customer data stored. Set shop_mode: 'checkout' in config. Done.
For businesses where products are sold through enquiry rather than direct purchase. Galleries. Consultancies with service packages. B2B suppliers. Restaurants with menus. Property listings. Pre-launch products. The buy button is replaced with a configurable enquiry action — a mailto link with the product name pre-filled, or a URL to your contact form, Calendly, or WhatsApp. Set shop_mode: 'catalogue' in config.
// features
Product JSON files with frontmatter. No SQLite, no MySQL. Backups are an rsync.
/shop/<category>/<slug>/ via .htaccess. No ?product_id=42 nonsense, ever.
Drag-drop upload, multi-image per product, drag-to-reorder galleries, alt text editing. Thumbnails generated on upload.
Curated homepage with featured product slots. You choose what leads — no algorithmic noise.
Designed for 375px from the ground up. Product pages, category grids and homepage all work beautifully before scaling up.
Stripe Payment Links, PayPal hosted checkout, Square, Gumroad, Lemon Squeezy, Ko-fi — any URL works. Switch processors without rebuilding.
HTTPS enforced. CSRF on every POST. bcrypt password hash. Rate-limited login. Sessions invalidated on password change.
Uploads decoded and re-encoded through GD or Imagick. Strips embedded payloads and EXIF data on upload.
Sole-developer-friendly. Upload, configure, remove. Nothing for an attacker to find when you're not actively managing.
// seo output
<title> + meta description from product frontmatterProduct schema (price, availability, image, brand)BreadcrumbList schema<article>, <figure>, breadcrumb)loading="lazy" + descriptive alt on every product image<picture>// install
/public_html/shop/ on your client's host.bootstrap.php with the path to your config directory (sample provided)./public_html/shop/admin/.https://yoursite.com/shop/admin/setup.php. Set a password. The wizard writes config.json and goes away.// backup is one cron line: rsync -az clientsite:/shop/products/ /backups/clientname/ — the whole shop state is files.
// comparison
Those are excellent for sites that need them. For a small static HTML client site that needs a catalogue with external checkout, they aren't.
~600K lines (wp+woo)
SaaS platform
~250K lines
~4.5K lines
// who it's for
Nano Cart assumes operators are fluent with file editing and comfortable with SFTP. It is not aimed at non-technical end users. For those, Shopify is genuinely the right answer.
If you build static sites for clients selling 20-50 products at fixed prices, or running enquiry-based businesses, or hosting curated catalogues, this is for you. Designed for: potters, authors, musicians, jewellery makers, small presses, food producers, consultants with service packages, galleries, B2B suppliers, restaurants, property listings, pre-launch shops. Not for: variant-heavy retail (size/colour matrices), inventory-tracked stock, marketplaces, anyone needing tax engines or shipping rules, shops past 150+ SKUs.
// licence
Nano Cart is free under MIT. It ships with a small Powered by Nano Cart — Developed by Digital Fracture footer on the pages it renders. For commercial work, agency client deliverables, or simply a cleaner footer, purchase a perpetual per-domain licence.
£29 one-time
£99 one-time
£249 one-time
// licences are signed with Ed25519 and verified locally — no phone-home, no telemetry, no servers to maintain. Your shop verifies the licence on every page render against the embedded Digital Fracture public key. Lose the licence file? Re-issue is free.
Nano Cart is solo-developed and MIT-licensed. If it saved you from installing WooCommerce on a small client shop, a coffee covers a lot of late-night debugging.