Application web
LetsLearn
Plateforme de partage de ressources techniques
Plutôt que d'éparpiller mes notes techniques dans des fichiers perdus ou sur des plateformes existantes, j'ai créé LetsLearn pour avoir un endroit structuré où organiser et partager mes connaissances sous forme de cours accessibles.
Genèse du projet
Structurer et partager ses connaissances
LetsLearn est né d'un besoin personnel : structurer et partager mes connaissances techniques sous forme de cours accessibles. Plutôt que d'utiliser une plateforme existante, j'ai décidé de construire la mienne de A à Z — pour apprendre autant que pour enseigner.
Ce qui a été construit
Un frontend complet, du rendu à l'infrastructure
Un site Nuxt 4 avec SSR, déployé via Docker sur mon infrastructure Proxmox avec Traefik en reverse proxy, Cloudflare pour l'exposition publique, Grafana/Loki pour l'observabilité et Rybbit pour les analytics. Build et déploiement automatisés avec Bun et GitHub Actions.
Défis techniques
Les problèmes qui m'ont le plus appris
Cours en Markdown, rendu dynamique
Les cours sont stockés dans des fichiers Markdown, interprétés et rendus dynamiquement avec une mise en page soignée. Des vidéos en iframe sont intégrées à certains chapitres pour compléter les explications.
Infrastructure auto-hébergée
Mise en place de Proxmox, Docker, Traefik pour le routing HTTPS et Cloudflare Tunnels pour l'exposition publique sans ouvrir de port.
Déploiement automatisé
Pipeline CI/CD complet avec runner GitHub Actions auto-hébergé. Chaque build intègre Bun, les tests, la construction Docker et le déploiement sans interruption de service.
Observabilité et analytics
Configuration de Grafana, Loki pour les logs et Rybbit pour les analytics, avec dashboards dédiés par service.
Technologies
Stack complète
Ce que j'ai appris
Apprentissages clés
- Architecture Nuxt 4 avec la nouvelle structure app/ et le rendu SSR
- Infrastructure self-hosted avec Proxmox, Docker, Traefik et Cloudflare
- Stack observabilité complète avec Grafana, Loki et Rybbit
- CI/CD avec runner GitHub Actions auto-hébergé et Bun
- TypeScript strict et composants Tailwind CSS réutilisables



