Back to portfolio

Forge Commerce

An online store the owner runs herself, without calling me for every change. In production for FAGA FIT.

The problem

A small shop has nobody to maintain its website. Every new photo, every price change, every sold-out product means messaging whoever built it and waiting. In practice that means the store goes stale and stops selling.

And there's a problem behind that one: the photos. A product shot on a phone over the counter doesn't sell like one on a clean background, but paying a studio per product doesn't add up for anyone.

What I built

  • Self-management panel. The owner logs in, creates the product, drags the photo in, sets the price and publishes. No code, no middleman.
  • AI photo pipeline. Upload the phone photo and it comes out on a clean background, catalog-ready. Real cost: about 4 cents a photo. She can also upload it as-is, with no AI and no cost, when the photo is already good.
  • Visual homepage editor. Four fixed slots the owner reorders to decide what gets seen first.
  • Static storefront. What the shopper sees is static HTML, not an app querying a database.

The architecture decision that matters

The panel writes to the database, which is the source of truth. On Publish, a catalog file is built, uploaded to object storage, and that triggers a rebuild of the static storefront, which reads that file.

The public storefront never touches the database. Supabase's free tier pauses a project after 7 days of inactivity. If the store depended on that database, a paying client would find her store down on an ordinary Monday, for a reason that has nothing to do with her. Separating them costs a little more work at publish time and eliminates that entire class of failure.

Stack

ComponentTechnology
Admin panelNext.js
API and photo processingCloudflare Pages Functions
DatabaseSupabase — multi-tenant with RLS
StorageCloudflare R2
Public storefrontNext.js with static export
Image AINano Banana

Model

It's a reusable product, not a one-off build: it installs for any shop at $250 setup and $35 a month. Multi-tenant from day one, with row-level isolation in the database, so client number two doesn't cost what client number one did.