This repository contains the frontend code for Ludocode, an open source code learning website.
The project is written using React, Typescript, Tailwind CSS, ShadCN UI, and Tanstack query, form, & router. On the backend, the project uses Kotlin & PostgreSQL.
git clone git@github.com:jokerhutt/ludocode-backend.git
cd ludocode-backend
cp .env.example .env
docker compose -f docker-compose.db.yml up -d
docker compose -f docker-compose.ludocode.yml up -d --build ludocode-backendgit clone git@github.com:jokerhutt/ludocode.git
cd ludocode
npm install
# Web app (http://localhost:5173)
cd apps/web && cp .env.example .env && npm run dev &
# Admin app (http://localhost:5174)
cd ../admin && cp .env.example .env && npm run devThe API is available at http://localhost:8080 with a pre-seeded demo user and course.
For enabling OAuth, AI, code execution, and other features, see the full documentation.
- Interactive exercises with multiple formats
- In-editor guided lessons with sandboxed code execution & output validation
- Ability to have multiple courses & lessons
- Streaks, points, & progress tracking
- In-browser WebSocket-based code editor with multiple languages
- In-browser editor supporting web projects with iframe preview and shareable URL
- Configurable code execution engine for backend execution
- Device-aware "Desktop Only" guard for editor-heavy pages
- Create & modify courses via WYSIWYG editor while preserving user progress
- Create courses using YAML with a defined schema
- Ability to archive published courses
- Configurable, context-aware AI assistant in lessons & projects
- Share, like, & duplicate projects
- User profiles
- Firebase authentication (email, Google, GitHub)
- Optional demo-mode authentication (no Firebase required)
- Account deletion & logout
- Animations with Framer Motion & Lottie
- Configurable banner system
- Onboarding flows for new users
- Responsive UI for desktop & mobile
- Cached server state via TanStack Query
- Batched fetching using batshit
- Form handling with Zod & TanStack Form
"Ludocode" is a trademark of the Ludocode project.
The source code in this repository is open source and can be used, modified, and even commercialized.
If you build a commercial product or hosted service based on this project, please use a different name and branding so it is not confused with the official Ludocode project.
This project uses assets from the LottieFiles Community for animations under the Lottie Simple License.
- Lesson complete trophy animation: Mahendra Bhunwal




