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

GH Store — one store on the web, in a Mini App and in a bot

How I built and run GH Store: one catalogue, one wallet and one order history across a website, a Telegram Mini App and a bot, with payments that can't charge twice.

GH Store's home page in a desktop browserGH Store's home page in a desktop browser
GH Store on a phoneGH Store on a phone

The goal

Digital goods — game top-ups, gift cards, subscriptions, virtual numbers — come from several suppliers, each with its own API, prices and ways to fail. Customers in the region pay in very different ways, from ShamCash to USDT to Telegram Stars, and many of them live inside Telegram rather than a browser.

What I built

  • One core behind three doors: the website, a Telegram Mini App and a bot share one account, one wallet, one catalogue and one order history.
  • Five suppliers behind a single catalogue, with automatic fulfilment and a price guard that pauses a package when its cost jumps.
  • Four payment methods — ShamCash, USDT (BEP20), NOWPayments and Telegram Stars — feeding one audited wallet ledger.
  • Money moves only inside the database: integer cents, ledger rows and idempotent orders, so retries and duplicate callbacks can't charge twice.
  • Four design presets in light and dark, picked from the store's admin. This site wears the same design system.

Where it is now

GH Store is live at gh-store.me and in Telegram as @ghstore_robot. It has delivered more than 1,000 orders, and every new feature reaches all three doors at once.

Built with

  • Cloudflare Workers
  • Supabase Postgres
  • Hyperdrive
  • TypeScript
  • React
  • Telegram Bot API

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