The brief
MEG is a furniture and interior-design business in Doha with a showroom, a large catalogue, and a brand that lives on craftsmanship. The site needed to work in Arabic first, not as an afterthought, and still give English-speaking clients the same experience.
The goal was not a generic catalogue. It was a digital extension of the showroom: browse by room, see the detail, understand the material, and start a conversation with the design team.

What I built
I designed the visual system and built the site end to end: 27 pages across Arabic (RTL) and English, a 613-product catalogue with 638 images, projects, an atelier story, a material library, and a consultation flow.
- Catalogue experience: category and subtype filters, bilingual search over English and Arabic names, URL state, load more, and quick view.
- Lead pipeline: Flask API with Cloudflare Turnstile, a honeypot, SMTP alerts, SQLite/CSV storage, a protected admin dashboard, and CSV export.
- Deployment: Cloudflare → nginx → static files plus a Flask service on systemd, with Let's Encrypt and daily backups.
- SEO: localized metadata, hreflang, FurnitureStore/WebSite/FAQPage JSON-LD, a sitemap, and an llms.txt file.

The details
The front end is hand-authored HTML5, CSS, and vanilla JavaScript with self-hosted Bodoni Moda, Manrope, Amiri, and IBM Plex Sans Arabic. There is no CMS and no checkout: the catalogue is inquiry-driven, which matches how the business actually sells.
The Arabic root is the primary experience, with the English mirror under /en/. That means RTL layout, Arabic-first typography, and localized metadata are product requirements, not a translation layer.
What I learned
RTL is a design constraint, not a mirror. Type, spacing, and carousels all needed to be designed twice, and the bilingual search needed to understand both naming systems.
A hand-authored stack was the right call for this site: it loads fast, has no build step, and can be handed over without a framework upgrade treadmill. The lead API is the only moving part, and it is small.