
- RoleFull-stack engineer & designer
- Year2026
- Built with
- Next.js
- TypeScript
- Drizzle ORM
- better-auth
- Cloudflare R2
- GSAP
What was wrong
A studio takes bookings from people who will use it once. Asking them to register, verify an email and remember a password to reserve a shooting day is friction that costs bookings — but the studio still needs the order, the payments and the schedule tied together internally.
What I did
Clients stay guests: their details live on the order itself, so booking is a form and nothing more. The studio side is a separate dashboard behind its own login — orders, catalogues, pricing, media, payments, calendar and team — with permissions per role, and staff signing in with whichever of phone or email the studio registered for them.
What changed
The studio runs its whole operation from one place, and the client never meets a signup form. It is live on the studio's own domain.
What is inside
A step-by-step booking wizard
The client picks the service, the date and the details one step at a time, and reaches confirmation without creating an account.
Clients stay guests
No signup, no email verification, no password — the client’s details live on the order, because most of them book once.
A video portfolio
Reels and stills from the studio’s own work, managed from the dashboard rather than hand-placed in code.
A full operations dashboard
Orders, my tasks, catalogues, pricing, media, payments, customers, calendar and team — each behind its own role permissions.
Staff sign in by phone or email
Each member uses whichever the studio registered for them, and the login route is not linked from the public site at all.
Arabic and English, both directions
Real RTL for Arabic and LTR for English through next-intl — not a mirror pasted over one layout.
From the build
A walkthrough of 7 screens, from the site and the dashboard.

The openingFull-bleed video behind the headline, because the studio sells moving image — a static hero would have contradicted the product. 
The work galleryReal reels from the studio’s own output, playing inside the page, with separate services such as podcast filming beneath them. 
The servicesFrom the idea to the final frame — scripting, filming, motion graphics and design, presented as one path rather than a price list. 
Product photographyIts own section with real examples, because a client looking for product stills is not the client looking for reels. 
The portfolio pageEverything in one place, in a vertical grid that matches the mobile-first content it was made for. 
Further workThe grid continues with more pieces — each card plays its preview in place instead of opening a lightbox. 
The booking wizardService, date and details one step at a time through to confirmation — no signup, no password, no email verification.

Kemo Prompt Engine
Still reading?
Then we should probably talk. Thirty minutes, free, no slide deck. Worst case you leave with a second opinion.