Selected work

Shipped, not mocked up.

Every build here is labelled honestly as client work or self-initiated, with one real, measured number. No testimonials, no invented logos, no "trusted by" — just the work.

Case studies

01 · Self-initiated

Kasmé — 3D clothing store

The problem

Small Beirut clothing labels sell through Instagram DMs, where buyers ask what size to get, wait for a reply, and leave. The wrong sizes that do get ordered come back as exchanges.

What we built

A store where every piece carries its real measurements and a 3D Fit Finder turns your height and usual size into a written pick before the figure even loads. Cash on delivery, an order that writes its own WhatsApp message, and 3D that only loads when the phone can take it.

AstroTypeScriptthree.jsNetlify
1.4s Mobile load · slow 4G

Visit the live project →

Kasmé concept store home page: the headline “The right size, the first time.” next to a magenta 3D cloth hanging from a rail, with colour swatches and Pause motion and Let it fall buttons.
02 · Self-initiated

Demo brokerage — trading platform site

The problem

Global trading platforms are built around cards and bank wires. We designed a demonstration brokerage brand around how traders in Lebanon actually fund an account: Whish Money and local bank cards.

What we built

A five-page site (home, markets, wallet, platform, support) with an animated globe and price chart drawn in plain JavaScript on canvas, no framework, and a four-step walkthrough from sign-up to first trade.

HTMLCSSJavaScriptCanvas
2.6s Mobile load · slow 4G

Visit the live project →

Home page of the demo brokerage site: the headline “Global markets, traded from Beirut.” beside an animated globe with price tags for gold, EUR/USD and bitcoin.
03 · Self-initiated

Bayt Zeit — concept pantry store

The problem

Lebanese pantry producers sell to two audiences: buyers at home who pay cash on delivery, and families abroad who want a taste of home shipped to them. We invented a producer, Bayt Zeit, to build one store for both.

What we built

A bilingual English and French store with a gift-box builder, shipping estimates for four diaspora regions, and an order flow that writes the whole order into a WhatsApp message (cash on delivery in Lebanon), ready for the producer to pack.

AstroTailwind CSSTypeScript
2.1s Mobile load · slow 4G

Visit the live project →

Bayt Zeit home page: the headline “The oil we press for our own table” beside a photograph of olives on the branch.
04 · Self-initiated

Jabal Watt — company management system

The problem

A solar and electrical contractor in the Metn runs 25 people on Excel files passed around on WhatsApp. Nobody can say which finished jobs were never invoiced, who still owes money, or what a client paid in lira and at which rate.

What we built

One system where each role sees only its part: the office manager schedules jobs and writes quotes, the accountant invoices and takes payments in dollars or lira at the day’s rate, and technicians get their own day on the phone. The server checks permissions on every request and audits every change; the demo lets you switch roles to see the difference.

ReactTypeScriptFastAPIPostgreSQL
295 Permission checks · all pass

Visit the live project →

The Jabal Watt demo viewed as the accountant: the Invoices list with draft, paid, unpaid and partly paid invoices in US dollars, some for clients with Arabic names, and the “Viewing as” switch at the top for changing role.