Case study · Zedd Studio

A bilingual storefront the owner runs alone

English and Persian, right-to-left throughout, and a CMS that needs no developer.

Fixed-scope build · Next.js · TypeScript · Supabase

The problem

Every enquiry was a direct message.

Prices lived in a note on a phone, Persian-speaking customers got a translated screenshot instead of a page, and nothing in the catalogue could change without a developer.

How it’s built

5 layers we worked on.

The rest of the stack was already sound, or out of scope.

Layer UI · 1 of 5

Right-to-left, end to end

Direction is built into the layout primitives once, so layout, icons, form fields and every arrow mirror for Persian readers.

Layer API · 2 of 5

Enquiries land in an inbox

Enquiries come in through the site and land in an inbox the owner runs herself, instead of arriving as direct messages.

Layer AUTH · 3 of 5

One owner, every edit checked

The owner signs in and edits pieces, prices and pages in place, in the design they'll appear in. Every write re-checks on the server that it's hers.

Layer DATA · 4 of 5

Rules the database enforces

Row Level Security enforces the same ownership rule a second time, and a draft is hidden from the public by policy, not by a filter someone has to remember.

Layer DEPLOY · 5 of 5

Quick on mobile data

Public pages are statically prerendered, so the shop loads fast on a phone, and the owner changes it without a deploy.

Outcome

Zedd Studio

Languages on one codebase
2
Developer tickets to change a price
0
Next project

Sharehold

Bills arrive at a forwarding address, get split per renter, and land in a ledger that survives someone moving out mid-cycle.