A money app for Egypt and the Gulf. You write what you spent in plain language, or
photograph the receipt, and it fills in the form. Nothing saves until you confirm it.
It counts gold by gram and karat, which is how gold is actually bought there and what
no off-the-shelf library does.
Nine screens. Pick one, or follow the arrows on Home.
Postgres tables
33 RLS on every one
Edge Functions
14 every sensitive call
Migrations
83 hand-written, reversible
Tests
1700+ client and edge, green
Expo SDK 56
React Native
TypeScript strict
Supabase
PostgreSQL
Deno
Claude API
Three products in one app: daily tracking, net worth, and shared expenses. Speech and
receipt capture both feed the same confirm step.
Privacy and terms, live
Home — balance, budget health, the next instalment due
Work
Hekta is at the top of this page. Three more below, and most of that code is private because it holds client data and pricing.
Muhrah
A brand I own
A handmade bukhoor brand in Madinaty. I built the storefront, the design system, and
a WhatsApp bot that answers customers and closes the order inside Shopify. The whole
project carries one external dependency. Everything else is the Node standard library.
The storefront is built and deployed. It stays behind a password page until the
catalogue is finished, so that second link opens a lock screen on purpose.
Horus Transfer
Built, not deployed
A tourist landing in Luxor has no idea what the ride into town should cost, so the
price gets negotiated at the curb. Horus quotes it before you book. Confirmation goes
to WhatsApp. There is no email field anywhere in the product.
Front endNext.js App Router, server components
DataPostgreSQL, a fare matrix from the operator's own prices
AbuseCloudflare Turnstile on every booking
DeliveryTelegram notifications to the operator
ShipDocker image, one command
Next.js App Router
PostgreSQL
Turnstile
Docker
Search only ever offers a destination the operator has actually priced, so no
estimated fare reaches the screen. The repo is private and the site is not
deployed.
NOOR
Live
A landing page for an Egyptian finishing contractor. The building in the hero is drawn
rather than photographed, a gold wireframe that assembles itself line by line. Four
moments of motion in the whole page, counted and budgeted.
Edge14 Edge Functions on Deno · every sensitive call
Data33 Postgres tables · 83 migrations · RLS on every one
InfraDocker · Caddy · Railway · Cloudflare
Approach
The app, the web front end, the schema, the functions that run on the edge, and the
container the whole thing ships in. Four products, no team.
I audit my own work before anyone else gets to
A pre-launch pass over Hekta turned up five problems the documentation already
claimed were finished. Deleting an account never revoked the Apple token. Free
quota counters never reset. All five are closed, and that pass is the reason the
app is still pre-submission instead of on the store.
The whole stack is mine, so nothing waits on anyone
The app, the web front end, the schema, the migrations, the Edge Functions, the
DNS, and the container it ships in. When the database needs a column, I add it in
the same afternoon the screen needs it.
Secrets never reach a client bundle
Every sensitive call runs server side from an Edge Function. The anonymous key that
ships in the app has never had access to anything a stranger could spend.