Skip to content
Back to projects

Portfolio project: fully built and tested, but not deployed to hosting yet. Source and runnable build are kept separately.

05

Portfolio project · bilingual tech shop

Selvage

A bilingual (Persian/English) tech gadget shop: filterable product lineup, detail pages, cart and a build-your-own configurator. A portfolio project that is complete and working, but not deployed yet.

Role

Designer & Frontend Developer

Stack

  • Next.js / React · App Router, SSG, two locales
  • PHP / Vanilla JS · Classic no-build port for WordPress
  • i18n · fa/en, RTL/LTR
  • CSS / Motion · Catalog design system
●localhost · self-hosted
2026
Selvage shop homepage screenshot

AI's role in this project AI-assisted

Persian copy went through several rewrites to sound natural and conversational instead of machine-translated.

Responsive

Same project, three viewports. Desktop, tablet and phone captures.

●Desktop · 1280×800
2026
Selvage shop desktop homepage
Selvage shop tablet homepage
Tablet · 820×1180
Selvage shop mobile homepage
Mobile · 390×844

High-level architecture

USER
NEXT.JS / PHP
PRODUCT DATA
CART
FA / EN

05 · Selvage · © 2026

THE PROBLEM

  • Sample-shop Persian copy usually reads dry and machine-translated.
  • Binding it to WordPress later should not need a full rewrite.

THE APPROACH

  • I wrote the Persian dictionary in a natural, conversational tone, with localized digits and prices.
  • I rebuilt the same content as a framework-free classic version so each section maps straight onto a WordPress template.

THE ARCHITECTURE

  • User → Next.js or PHP → product data → cart.
  • Two locales with separate routes and RTL/LTR layout.

THE TECHNOLOGY

  • Next.js / TypeScript
  • PHP / Vanilla JS
  • CSS design system
  • i18n routing

THE CHALLENGES

  • Keeping Persian natural on every screen, from buttons to error states.
  • Keeping look and behavior identical across two different implementations.

THE RESULT

  • A shop both Persian and English speakers find easy to use.
  • Ready to become a WordPress theme without rewriting logic.