05/Plateforme e-learning · Serverless
LearnJS
14 cours JavaScript interactifs FR/EN, avec paiement, magic link et contenu protégé à l’edge.
- Rôle
- Conception, contenu et développement, en solo
- Période
- mars 2026
- Statut
- En ligne

- cours FR / EN
- 14
- de développement
- 4 jours
- dépendance pour vérifier les JWT
- 0
Contexte
Un projet court pour éprouver les fondamentaux du web et une architecture serverless sécurisée, en complément de mes projets React.
Le problème
Protéger du contenu payant sur un site statique, sans base de données classique ni framework, et gérer proprement les remboursements.
Architecture & choix techniques
- 01
JWT vérifié à l’edge, sans dépendance
Une Edge Function (Deno) vérifie elle-même la signature HMAC-SHA256 du jeton avec crypto.subtle. Le cookie est HttpOnly, Secure et SameSite=Strict.
- 02
Révocation sur remboursement
Un webhook Stripe signé (charge.refunded) pose une clé de révocation avec TTL dans Redis, contrôlée à chaque requête. Une session unique limite le partage de compte.
- 03
Magic link sans énumération
Un JWT de 15 minutes est échangé contre un jeton de session ; la réponse reste neutre quelle que soit l’adresse saisie.
- 04
Pédagogie en vanilla JS
Sommaire synchronisé au scroll (IntersectionObserver), QCM, suivi de progression et i18n maison, sans aucune bibliothèque.
Stack
- JavaScript
- HTML / CSS
- Netlify Functions
- Netlify Edge Functions (Deno)
- Web Crypto
- Stripe Checkout & webhooks
- JWT HS256
- Upstash Redis
- Resend
Galerie (4)
Sélectionnez une image pour l’agrandir.