Inspiration

Learning with LLMs often feels slower than it should:

  • Answers are verbose when you want a quick explanation.
  • You get hit with unfamiliar terms without any scaffolding.
  • Linear chat makes you scroll, lose context, and never really track what you actually learned.

We wanted something that feels like Canvas, but built for AI-first learning.

What it does

TutorCanvas lets you create Courses → Modules → Items, where an “AI tutor thread” is not a wall of text but structured learning.

Each tutor response is converted into:

  • Core answer (short and direct)
  • Expandable cards (Intuition / Example / Formal / Pitfalls)
  • Clickable term tooltips + a course Glossary drawer
  • A micro-check question to confirm understanding

Progress is tracked by checkpoint performance + term mastery, not by time spent.

How we built it

  • Frontend: Canvas-style layout (course sidebar, modules list, main content, glossary drawer)
  • Backend: API routes for courses/modules/items, chat history, and progress computation
  • AI layer: the LLM returns strict JSON so the UI can reliably render cards, terms, and micro-checks

We store:

  • tutor thread events (questions + structured answers)
  • glossary terms with statuses (unknown / learning / known)
  • micro-check attempts for progress

Challenges

  • Structured output reliability: we enforced a strict JSON schema and validated responses to prevent UI breakage.
  • Making it feel non-linear: we avoided “scrollback hell” by using cards + a glossary drawer instead of pure chat.
  • Progress that means something: we tied progress to demonstrated understanding (micro-checks + term mastery).

What we learned

LLMs become much better tutors when you control:

  • pacing (short core + expand)
  • vocabulary (term tooltips + glossary)
  • feedback (micro-checks)
  • structure (course/module organization)

Next steps

  • Import PDFs/lecture notes and auto-generate modules + tutor threads
  • Spaced repetition from “unknown” terms and missed micro-checks
  • Better personalization (user skill model per course/topic)

Built With

  • next
  • prisma
  • tailwind
Share this project:

Updates