I build products end to end, from the database to the App Store.
- Marketplaces and payments
- AI systems and agents
- Arabic-first apps
- iOS, Android and web
Lebanon, working worldwide. I reply in English, Arabic or French.
Seven products. 2 are mine, 5 I built for clients.
Furrsatiفرصتي
A freelance marketplace where money moves only when the work is approved.
Freelancers across Lebanon and MENA wait weeks to get paid, and clients pay upfront for work that may never arrive. Nobody trusts the other side with the money.
A marketplace on iOS, Android and the web. Every milestone is funded into escrow, released when the client approves, and paid out through OMT, Whish or crypto. Chat with voice notes, KYC with the camera, and paid video consultations.
Live on the App Store and Google Play, in English, French and Arabic, with a 73-page admin that runs disputes, KYC and payouts.
The challenge: Freelancers across Lebanon and MENA wait weeks to get paid, and clients pay upfront for work that may never arrive. Nobody trusts the other side with the money.
- React Native
- Node.js
- Postgres
- Prisma
- Stripe
- Socket.io
- Redis
- Claude
Collabfront
Brands and creators find each other, agree terms and get paid safely.
Brands need creators they can trust, and creators need to know they'll be paid, whether the deal is cash or product.
A marketplace for paid campaigns, barter deals and direct bookings, with the payment held in escrow, Stripe subscriptions for brands, and live messaging, all in English, French and Arabic.
Live on the App Store and the web, with Arabic running fully right to left, and updates shipped over the air.
The challenge: Brands need creators they can trust, and creators need to know they'll be paid, whether the deal is cash or product.
- Expo
- React Native
- Express
- Prisma
- Supabase
- Stripe
- Socket.io
Proof of Talk
An invitation-only summit at the Louvre, moved off WordPress with one DNS change and zero lost URLs.
An executive summit held inside the Louvre in Paris and Abu Dhabi ran on an ageing WordPress site with about 50 plugins, and every new edition needed a developer.
A custom Next.js and Supabase platform: a cinematic scroll-driven site, application funnels, pitch-deck uploads, attendee cards, and an admin with a sponsor CRM the team edits as plain sentences.
Switched over with one DNS change while WordPress stayed up as the rollback. Every old URL still works, and a new edition is now a content task.
The challenge: An executive summit held inside the Louvre in Paris and Abu Dhabi ran on an ageing WordPress site with about 50 plugins, and every new edition needed a developer.
- Next.js
- Supabase
- Postgres
- GSAP
- Resend
- Vercel
Yalla Triviaيلا تريفيا
A Lebanese game show for the couch, with a question bank that checks its own facts.
Lebanese players had no trivia game that sounded like home. Generic apps use formal Arabic, and static question packs run out.
A two-team game show on one shared screen, with a 36-card board and charades handed off to a phone by QR. Behind it, an AI engine drafts, de-duplicates and fact-checks questions in Arabic, English and French.
7,516 approved questions across 97 sub-themes, each one approved by a person before it can be played. Launching soon.
The challenge: Lebanese players had no trivia game that sounded like home. Generic apps use formal Arabic, and static question packs run out.
- Next.js
- Supabase
- Postgres
- Drizzle
- Claude
- Tailwind CSS
Altamira Village
A luxury hotel in Caracas with its own booking system, built for slow, manual payments.
A hotel, spa, casino and shopping complex in Caracas needed a site guests could book from in Spanish or English, even though most payments arrive slowly by Pago Móvil or Zelle.
The whole thing, A to Z: a bilingual website for rooms, dining, spa and events, a four-step booking flow, a custom booking engine that audits every step, and a Spanish admin panel where staff run reservations, rooms, offers and content.
Running on staging and matched to the designer's files down to 652 individual text spans, ready for the hotel's own domain.
The challenge: A hotel, spa, casino and shopping complex in Caracas needed a site guests could book from in Spanish or English, even though most payments arrive slowly by Pago Móvil or Zelle.
- Next.js
- Postgres
- Drizzle
- Neon
- Puppeteer
- Vercel
Staging link on request.
NewsGateنيوز غيت
An Arabic news app that stays fast on bad networks and a worse API.
A Lebanese news outlet had a website and an API it doesn't control: broken rows, dates without time zones and pagination that drifts.
A native Arabic reader, right to left throughout, with a breaking-news ticker, sections, video and the live stream, offline bookmarks and breaking-news alerts. Every API row is checked on its own.
Store-ready: a 17.6 MB Android release, down from 45 MB, and about 308 tests, some run against the live API.
The challenge: A Lebanese news outlet had a website and an API it doesn't control: broken rows, dates without time zones and pagination that drifts.
- Expo
- React Native
- TanStack Query
- Zod
- Firebase
- TypeScript
HQ
My control room for AI coding agents. They work on schedules; a supervisor decides when to wake me.
Running several AI coding agents by hand means babysitting terminals, answering the same questions twice and losing work when a process dies.
A self-hosted control room. Claude and Codex agents take tasks from a crash-safe queue, run on schedules and share memory. A supervisor agent answers what it can and escalates the rest.
Only the decisions that need a person reach me. It runs seven agents across five projects, from a browser or a native Mac app.
The challenge: Running several AI coding agents by hand means babysitting terminals, answering the same questions twice and losing work when a process dies.
- TypeScript
- Fastify
- SQLite
- React
- Electron
- Claude
Private tool. Walkthrough on request.
What I do best, working.
Every tile is a working piece of a real product. Drag it, type in it, flip it, try to break it.
Money waits in escrow and splits to the cent. It can't split any other way.
400.00 equals 40.00 platform fee plus 360.00 to the freelancer.
10% of 400.00 is exactly 40.00. The payout is the rest, so the sum always holds.
- Fund, done
- Hold, in progress
- Approve, not yet
- Release, not yet
400.00
Platform fee · 10%
0.00
To freelancer · OMT
0.00
Drag the bar or type an amount. Then release it, or try to break it.
Event log
- Nothing sent yet.
Agents work the night shift. A supervisor decides what reaches me.
Nothing needs you.
The supervisor answers what it can.
- No agent on a task
- Debugger: Triage overnight errors
- Scout: Scan dependency updates
- Debugger: Clean up the orders schema
- Nothing yet
- 01:00 cron: night shift started
Arabic isn't a translation. The whole interface turns around.
English runs left to right.
AI drafts the questions. Nothing goes live until it passes every check and a person approves it.
Bookings that wait for slow payments, and never skip a step.
- Inquiry
- Awaiting payment
- Checking payment
- Confirmed
- Guest requested Suite Ávila, 2 nights
A live site moved off WordPress with one DNS change. Not one URL lost.
proofoftalk.io points to WordPress
WordPress~50 plugins
Serving visitors
Next.js 16Supabase
Built in parallel
42 redirects staged
Visitors are on WordPress. Flip the switch to cut over.
Messages arrive the moment they're saved, and never before.
Client’s phone
- Milestone 1 is ready for review.
Freelancer’s phone
- Milestone 1 is ready for review.
Send one, then turn on the crash and send another.
Shipped to the stores, and updatable after launch.
Android code
Over-the-air update
- Bundle builds, not run
- Runtime version matches, not run
- Smoke test passes, not run
Installed phones run v1.4.2.
- Furrsati: App Store, Google Play
- Collabfront: App Store
- NewsGate: Android release built
How I work
One accountable person from the first call to launch day. You always know what’s done, what’s next and what it costs.
- 01
Scope
We agree what has to work, what can wait and what done means. You get a written scope and a dated first milestone.
Step 01 / 04ScopeBuildShipHand over - 02
Build
I work on a staging link you can open any time. You see working software every week, not slides.
Step 02 / 04ScopeBuildShipHand over - 03
Ship
Store review, DNS cutover or launch day. I run it, and the old version stays ready as the rollback.
Step 03 / 04ScopeBuildShipHand over - 04
Hand over
The admin, the docs and the access are yours. Your team runs it day to day without calling me.
Step 04 / 04ScopeBuildShipHand over
What do you need?
Pick the closest fit. Each one points to work where I’ve already done it.
MVP to the stores
A first version live on the App Store and Google Play, with the admin you need on day one.
Platform build
Web platform, backend, admin and payments built as one system.
Proof of TalkClient work · Live
Yalla TriviaClient work · Pre-launch
Altamira VillageClient work · Staging
Legacy rescue and cutover
Rebuilt next to the old site, every URL kept, switched with one DNS change.
Arabic and RTL
Layout, numbers, plurals, dates and dialect done properly, not just translated strings.
AI that holds up in production
Timeouts, fallbacks, cost logs and a person approving what matters.
Hiring for your team?
Every chapter above lists the hard problems and the stack behind them. Send a note with the role and I’ll walk you through any of it.
Furrsati
Collabfront
NewsGate
HQ