Ahmed Ghawi
عLet's talk
All workCase study · Store platform · Live

Stori — a complete online store for every shop, on its own accounts

How I built Stori: one codebase that ships a full online store — five templates, an Arabic admin panel, Sham Cash payments — to each shop, on the shop's own GitHub, Cloudflare and Supabase accounts.

A Stori supermarket store's home page in a desktop browser
The same store on a phone, in the mosaic template

The goal

Local shops, supermarkets first, want to sell online under their own name, in Arabic, with the payments their customers already use. A generic store builder doesn't fit how a supermarket works — prices by weight, delivery slots, cash on delivery — and the owner wants the store, the domain and the customers' data to be theirs, not rented.

What I built

  • One codebase, one deployment per client: each store runs on the client's own GitHub, Cloudflare and Supabase accounts and domain.
  • Five storefront templates that differ in structure, each in six palettes, Arabic first with English beside it.
  • An Arabic admin panel: Excel import, products sold by weight, delivery zones and slots, staff permissions with two-step sign-in, and profit reports.
  • Sham Cash payments that are re-checked with the provider before an order counts as paid, plus cash on delivery.
  • A platform at stori.ghawi.app: the showcase, a live demo store, and an owner panel that ships updates to every store and watches their health.

Where it is now

Stori is live at stori.ghawi.app, with a demo supermarket store anyone can browse. The first client stores are next, and every new feature lands in all of them at once.

Built with

  • Cloudflare Workers
  • Hono
  • React
  • Supabase Postgres
  • D1
  • TypeScript

Want something like this?

Tell me what you're building. You'll get a scope, a price and a timeline within a day.

Start a conversation

More work