Run it in your browser
The browser version of Libre Academy lives at /learn/. It’s the desktop app’s frontend running against IndexedDB for persistence — no server, no account, no telemetry.
What works in the browser
Anything that can run inside a browser tab:
- JavaScript / TypeScript — Web Workers, isolated per-lesson
- Python — via Pyodide; first run downloads the runtime (~9MB)
- Web / React / Three.js / Svelte / SolidJS / HTMX / Astro / Bun — iframe sandboxes with HMR-like reloads
- Rust + Go — proxied to play.rust-lang.org and play.golang.org
- React Native — react-native-web with a phone-shaped preview
What doesn’t
Compiled languages that need a system toolchain — C, C++, Java, Kotlin, C#, Swift, Assembly — are desktop-only. The browser cannot spawn child processes, so there’s nothing to run them against. The catalog page marks each language clearly so you don’t get surprised opening a course you can’t finish in-tab.
Saving progress
Lesson completions, your XP, and the streak counter all live in IndexedDB on the device you’re using. There’s no cloud sync from the browser variant — install the desktop app + sign in to get progress mirrored across machines.