Local-first by default
Libre Academy is local-first. By default:
- Every course is a JSON file on disk (or in IndexedDB in the browser)
- Progress, XP, and streak counters live in SQLite (desktop) / IndexedDB (browser)
- The AI tutor runs against a local Ollama instance — zero tokens billed, no cloud round-trip
- There is no telemetry. No analytics, no error reporters, no outbound calls beyond the playground proxies and an optional cloud-sync toggle
What does talk to a server?
A small set of opt-in things:
- The Anthropic backend for the AI tutor, if you flip it on under Settings (the local Ollama path stays default)
- Cloud sync, if you sign in — small JSON progress records, nothing else
- The Rust + Go playgrounds at play.rust-lang.org and play.golang.org, since neither toolchain ships with Libre Academy
Everything else — including PDF ingest, lesson rendering, code execution for the in-browser languages — runs entirely on your machine.