Web application

Live since 2025

LetsLearn
Technical learning resource platform

Rather than scatter my technical notes in lost files or on existing platforms, I created LetsLearn to have a structured place where I can organize and share my knowledge as accessible courses.

Project origin

Structure and share knowledge

LetsLearn came from a personal need to structure and share my technical knowledge as accessible courses. Rather than using an existing platform, I decided to build my own from scratch to learn as much as to teach.

Année2025
Statut Live
TypeWeb application

What was built

A complete frontend, from rendering to infrastructure

A Nuxt 4 site with SSR, deployed via Docker on my Proxmox infrastructure with Traefik as reverse proxy, Cloudflare for public exposure, Grafana/Loki for observability and Rybbit for analytics. Build and deployment automated with Bun and GitHub Actions.

Technical challenges

The problems I learned most from

Markdown courses, dynamic rendering

Courses are stored in Markdown files, interpreted and rendered dynamically with polished layouts. Video iframes are embedded in certain chapters to complement explanations.

Self-hosted infrastructure

Set up Proxmox, Docker, Traefik for HTTPS routing and Cloudflare Tunnels for public exposure without opening ports.

Automated deployment

Full CI/CD pipeline with self-hosted GitHub Actions runner. Each build includes Bun compilation, tests, Docker build and zero-downtime deployment.

Observability and analytics

Set up Grafana, Loki for logs and Rybbit for analytics, with dedicated dashboards per service.

Technologies

Full stack

Nuxt 4Vue 3TypeScriptTailwind CSSBunNitroDockerGitHub ActionsTraefikCloudflareGrafanaLokiRybbit

What I learned

Key learnings

  • Nuxt 4 architecture with the new app/ structure and SSR rendering
  • Self-hosted infrastructure with Proxmox, Docker, Traefik and Cloudflare
  • Complete observability stack with Grafana, Loki and Rybbit
  • CI/CD with self-hosted GitHub Actions runner and Bun
  • Strict TypeScript and reusable Tailwind CSS components

What's next?

More projects to come

I am constantly working on new ideas. The Lab tracks my ongoing experiments.