Stateless core
Pure jose + fetch — no Express, no MongoDB. Runs on Node, edge, Cloudflare Workers, Deno, Bun.
Stateless core
Pure jose + fetch — no Express, no MongoDB. Runs on Node, edge, Cloudflare Workers, Deno, Bun.
Bring your own storage
Nonces, platform registry, and keys sit behind small adapter interfaces. Prisma (any DB), Redis, Supabase, memory — or your own.
Auth-agnostic
LTIkit hands you verified claims. Create your session with NextAuth, better-auth, Supabase Auth, or a custom JWT.
Field-hardened
The cross-LMS gotchas (Canvas + Moodle) are baked in — grade passback, deep linking, and SSO that actually work.
A small required core, and the rest is your choice. Pick each independently:
Prefer to run something first? Two complete reference tools do the full loop — SSO → deep linking → grades → roster — against a real LMS.
New to how the pieces relate? Start with How it fits together.