Architecture
La version 1 de ce portfolio est un site statique (SSG) sur CloudFront/S3, avec une petite API serverless pour le contact et l’admin — scale-to-zero par défaut.
Navigateur → CDN pour les pages ; API Gateway → Lambda pour les leads contact.
Navigateur FR / EN
CloudFront
S3 (HTML / assets)API Gateway → Lambda
DynamoDBSES
Stack
La génération statique rend les pages peu coûteuses ; seul le contact/admin a besoin de compute.
| Couche | Technologie | Pourquoi |
|---|---|---|
| CDN / hébergement | CloudFront · S3 | Cache global, TLS, faible coût à faible trafic |
| Web | Next.js SSG · next-intl | SSG + i18n ; pas de serveur Node 24/7 |
| Contenu | Markdown in-repo (build-time) | Markdown compilé au build CI |
| HTTP API | API Gateway HTTP API | Front door managé, throttling, JWT |
| Contact / admin | Lambda · Node/TypeScript | Leads, mail SES, disponibilité, JWT admin |
| Données | DynamoDB (on-demand) | Table on-demand pour les leads — paiement à la requête |
| Amazon SES | Notifications transactionnelles au propriétaire du site |
Correspondance V0 → V1
Même contenu produit ; forme runtime moins chère. L’infra vit dans le dépôt ega-v1-infra-tf.
| V0 (Compose / EC2) | V1 (serverless) |
|---|---|
| EC2 + Traefik + Compose (V0) | CloudFront + S3 (this site) |
| content-service (Go) | Markdown at build (no runtime content API) |
| api-gateway + contact-service | API Gateway + Lambda |
| Postgres + Redis | DynamoDB + API GW throttling |
| Mailpit | SES |
