MagicCardsMagicCards

Stack technique

Un résumé des technologies derrière MagicCards, web et mobile.

Web

Next.js (App Router, Turbopack), TypeScript et Tailwind CSS v4. L'app est aussi une PWA : elle fonctionne hors ligne, s'installe comme une app native, et se met à jour silencieusement.

Mobile

React Native avec Expo et Expo Router, qui partage les mêmes routes API que le web. TypeScript de bout en bout, comme sur le web.

Backend & données

Firebase Firestore pour les données (avec synchronisation temps réel pour les classements, duels et événements en direct) et Firebase Storage pour les images. Toute la logique sensible passe par les routes API de Next.js, jamais d'écriture directe depuis le client.

Authentification

OpenID Connect (PKCE) contre notre fournisseur SSO, jeton d'identité vérifié côté serveur (jose, JWKS) avant émission d'un jeton Firebase. Connexion Google en alternative.

Intelligence artificielle

Google Gemini pour la génération de decks par IA et pour les pièges des QCM (quiz du jour, mode QCM, événements).

Paiement & communication

Stripe pour les abonnements, Resend pour les emails transactionnels, Web Push et Expo Notifications pour les rappels de révision.

Infrastructure

Hébergement Vercel, rate limiting sur Upstash Redis, erreurs suivies avec Sentry, tâches planifiées (cron) pour les séries et le quiz du jour.

Qualité

Vitest pour les tests unitaires et d'intégration, Playwright pour le bout en bout contre de vrais émulateurs Firebase, ESLint et TypeScript strict.