68 lines
3.5 KiB
Markdown
68 lines
3.5 KiB
Markdown
# ADR 001 — Hébergement frontend : Cloudflare Pages
|
|
|
|
**Statut :** Accepté
|
|
**Date :** 2026-04-17
|
|
**Décideur :** Hermann
|
|
|
|
---
|
|
|
|
## Contexte
|
|
|
|
Le frontend Expria V2 doit être hébergé sur une plateforme de distribution statique. Trois options étaient envisagées : Vercel, Cloudflare Pages, et un VPS.
|
|
|
|
Contraintes à prendre en compte :
|
|
|
|
- L'audience cible est majoritairement en Afrique du Nord (Algérie, Maroc) et en Afrique centrale (Cameroun), avec une part importante au Canada. Presque 100% mobile.
|
|
- Le DNS de `expria.app` est actuellement géré chez Vercel.
|
|
- Le backend tourne déjà sur Render Frankfurt (EU).
|
|
- Le projet est maintenu par un fondateur non-technique, avec assistance IA.
|
|
- Les revenus sont encore nuls ou quasi nuls — les coûts d'infrastructure doivent rester à zéro.
|
|
|
|
## Options envisagées
|
|
|
|
### Option A — Vercel
|
|
|
|
- Avantages : DNS déjà configuré chez Vercel, auto-deploy GitHub natif sans config, edge nodes à Paris et Francfort.
|
|
- Inconvénients : tarif gratuit limité en bande passante si le produit décolle, verrouillage progressif dans l'écosystème Vercel (edge functions, middleware), fondateur a déjà exprimé un veto personnel contre Vercel suite à frictions passées.
|
|
|
|
### Option B — Cloudflare Pages
|
|
|
|
- Avantages : CDN mondial (287+ points de présence, y compris Casablanca et Le Caire), tier gratuit généreux (builds illimités, bande passante illimitée), cohérent avec la recommandation initiale d'`ARCHITECTURE.md` backend §2, découplé du DNS (on peut migrer le DNS sans changer l'hébergement).
|
|
- Inconvénients : déploiement via Wrangler CLI légèrement moins transparent que Vercel, auto-deploy GitHub nécessite une config initiale.
|
|
|
|
### Option C — VPS (dans la continuité du backend)
|
|
|
|
- Avantages : un seul fournisseur, contrôle total.
|
|
- Inconvénients : fait perdre tout le bénéfice CDN (les utilisateurs africains rapatrient les assets depuis Frankfurt), charge opérationnelle (nginx, certificats, mise à jour OS), gaspille les ressources VPS.
|
|
|
|
## Décision
|
|
|
|
**Cloudflare Pages** pour l'hébergement frontend.
|
|
|
|
Configuration cible :
|
|
- Source : dépôt GitHub `germannoff/expria-frontend`
|
|
- Build command : `npm run build`
|
|
- Output directory : `dist`
|
|
- Domaine : `expria.app` (CNAME depuis le DNS Vercel vers Cloudflare Pages, le DNS reste chez Vercel jusqu'à nouvel ordre)
|
|
- Déploiement : auto-deploy à chaque push sur `main` (configuration Cloudflare Pages ↔ GitHub)
|
|
|
|
## Conséquences
|
|
|
|
**Positives :**
|
|
- Coût zéro quelle que soit la montée en charge initiale.
|
|
- Latence optimisée pour l'audience cible (CDN proche des utilisateurs africains).
|
|
- Cohérent avec le document de référence backend `ARCHITECTURE.md` §2.
|
|
- Indépendance vis-à-vis de Vercel (DNS reste séparé de l'hébergement).
|
|
|
|
**Négatives :**
|
|
- Une commande CLI supplémentaire (`wrangler`) à connaître pour les déploiements manuels d'urgence. Mitigation : l'auto-deploy GitHub résout ce point à 95%.
|
|
- Si le fondateur doit un jour déployer manuellement sans accès au terminal, il devra passer par le dashboard Cloudflare Pages.
|
|
|
|
**À revisiter si :**
|
|
- L'audience bascule massivement vers un continent non couvert par Cloudflare (improbable).
|
|
- Cloudflare Pages impose des limites qui contraignent le produit (scénarios edge à étudier si on ajoute du server-side rendering plus tard).
|
|
|
|
## Références
|
|
|
|
- `ARCHITECTURE.md` backend §2 et §9 (recommandation initiale Cloudflare Pages)
|
|
- `TECH_DEBT.md` TD-04 (déploiement manuel — rendu caduc par la réactivation du compte GitHub le 2026-04-17)
|