
I wanted a shop that smelled like a shop
Theme demos all look like they were designed for a slide. I wanted velvet, type you can read from the sofa, and a checkout that does not apologize for being in Spanish. Zafriya started in late 2025 as a brand I was going to stand behind in Spain: Arabian and European houses, real stock, free shipping inside the country.
I picked Next.js 15 and React 19 because I already knew I would be the only engineer at 11pm. next-intl for the two languages. Stripe for the card. Firebase for the catalog. TipTap so I can write a product story without opening VS Code. Spline on the hero because a perfume site is allowed to show off a little.
The unglamorous weeks were Merchant Center and webhooks
The pretty part shipped first. Then came GTM, Resend, Google Merchant Center, and the emails people actually read when a box is late. I kept a Shopify Liquid theme in a second repo so the same bottles could live on that stack if I needed them to. Husky and tests are there because a live shop is a wonderful way to break Friday.
By March 2026 the site was not a concept. It was orders, locales, and a CMS I trust when I am not in the mood to deploy. That is the work I care about: design through payments, then the dull consoles that keep a store findable.

