7 languages · Retail · 2025
Femmelady
A multilingual storefront and the Directus backend underneath it — native i18n across every collection, media translated alongside its content, and a permissions model built to survive a growing team.

- Role
- Data model, permissions, backend, storefront, deployment
- Year
- 2025
- Languages
- EnglishDutchFrenchArabicJapaneseKoreanChinese
- Stack
- DirectusReact Router 7RedisBunny CDNCloudflare R2GCP Cloud RunDocker
Seven languages including right-to-left Arabic, across products, categories, reviews and every static page — plus media that has to differ per language. Bolt-on translation breaks at this size.
Translation as part of the model
Every translatable collection uses Directus' native i18n rather than duplicated fields, so a new language is configuration, not a migration.
Media that follows the language
Assets link to their translations, so a Japanese product page serves Japanese-specific imagery instead of falling back to English.
Relational modelling done once
M2M, O2M and M2O relationships throughout, kept normalised so reporting and new frontends don't need a rewrite.
Access and abuse control
Roles and policies separate public, customer and admin. Redis rate-limits password reset; Turnstile guards registration and login.
Source available · Reference build