Aller au contenu
Yaaza Ait Bah
Tous les projets

This portfolio

Le site que vous lisez : un frontend Next.js, une API Express et MongoDB, en anglais, français et arabe, avec un espace d'administration qui gère chacun de ses mots. Construit, testé et déployé sur un VPS de bout en bout.

Ce portfolio — pas encore de capture d'écran

Réalisé avec

  • TypeScript
  • Next.js
  • React
  • Tailwind CSS
  • shadcn/ui
  • Radix UI
  • TanStack Query
  • React Hook Form
  • Zod
  • Node.js
  • Express
  • MongoDB
  • Mongoose
  • JSON Web Tokens
  • Docker
  • Docker Compose
  • Caddy
  • Vitest
  • Playwright
  • GitHub Actions
  • Linux

Rôle

Tout : le design, le frontend, l'API, la base de données, les tests, le déploiement.

Le problème

Trois langues, dont une qui se lit de droite à gauche, et chaque mot de la page stocké plutôt qu'écrit dans le code — pour qu'ajouter une langue soit du contenu et de la configuration, jamais un changement de schéma.

Approche

Chaque chaîne stockée est une table indexée par langue dont seule la langue par défaut est requise, et la mise en page utilise partout des propriétés logiques plutôt que gauche et droite. L'alternative — une colonne par langue — a été écartée : elle ferait d'une quatrième langue une migration au lieu d'un dossier.

Résultat

En ligne sur un VPS derrière un reverse proxy avec TLS automatique, l'espace d'administration sur son propre domaine, et une suite de plus de 1 500 tests qui tourne à chaque push.