memory-demo — fastest
Next.js + in-memory adapter. No database, no external service at all. Full LTI loop + Dynamic Registration + cookieless Platform Storage. Trade-off: state resets on server restart — re-register after each restart.
Three complete, runnable reference tools live in the repo. Each does the full LTI loop — SSO launch → deep-link content selection → grade passback (AGS) → roster (NRPS) — so you can see LTIkit working against a real LMS before wiring your own app.
memory-demo — fastest
Next.js + in-memory adapter. No database, no external service at all. Full LTI loop + Dynamic Registration + cookieless Platform Storage. Trade-off: state resets on server restart — re-register after each restart.
next-prisma-demo — persistent, zero-setup
Next.js + Prisma/SQLite + NextAuth. Same zero-external-service simplicity, but state survives restarts. Full parity: SSO, deep linking, AGS, NRPS, Dynamic Registration, cookieless Platform Storage, plus a seeded login page for direct (non-LMS) visits.
next-demo — Supabase stack
Next.js + Supabase. The minimal loop (SSO → deep link → grade → roster). Ships a bundled local Supabase project (Docker) with the ltikit tables as a migration, so you can run it end-to-end locally or point it at your own Supabase.
git clone https://github.com/Liberate-Labs/ltikit-sdkcd ltikitpnpm install
cd examples/memory-democp .env.example .env.local # then fill APP_URL and the keypairpnpm devPoint your LMS’s LTI 1.3 auto-config at APP_URL/api/lti/register (Dynamic Registration) — no
manual setup, no seed data. Restarted the server since registering? The platform is gone
(in-memory) — just re-run Dynamic Registration before your next launch.
Need a public HTTPS URL for the LMS to reach the tool (its iframe + SameSite=None; Secure
cookies require it) — a dev tunnel works for local testing.
| Capability | memory-demo | next-prisma-demo | next-demo |
|---|---|---|---|
| Storage | In-memory (zero setup, resets on restart) | Prisma / SQLite (zero external service, persistent) | Supabase / Postgres |
| Framework binding | @ltikit/next | @ltikit/next | @ltikit/next |
| Auth / session | app-owned session | NextAuth v5 + seeded login page | app-owned session |
| SSO launch · deep linking · AGS · NRPS | ✅ | ✅ | ✅ |
| Dynamic Registration | ✅ (only option) | ✅ | — |
| Cookieless Platform Storage | ✅ | ✅ | — |