Case study 01
Duologue
An AI tutor for university students that stays on the course material and pushes them to reason, rather than handing over answers. Built from the first commit through to production.
- Client
- Duologue
- Agency
- Bond and Coyne
- Role
- Senior developer
- Year
- 2026
- Discipline
- SaaS · EdTech · AI
Overview
Duologue is an AI tutor for university students. Its first module is a course in critical thinking and AI literacy. Students work through each unit by talking with a tutor that stays on the course material and pushes them to reason things through, rather than handing over answers. Staff and institution admins manage classes, courses and enrolments, and can see how their students are progressing.
Work started in July 2025, and Duologue went live to students at St George's, University of London in January 2026, after a long period of user testing and change requests.
The problem
General-purpose chatbots give students answers instead of building their thinking skills, and nothing ties them to the course they're taking. Duologue gives students guided conversations about their own course material, and gives staff visibility of how each student is getting on.
How the tutor works
- Grounded in the course: course content is split into chunks, embedded and stored in PostgreSQL with pgvector. Each student message is matched only against that course's content, and the closest passages go into the tutor's prompt, so answers come from the course rather than the model's general knowledge.
- A pipeline on every turn: a moderation check runs first, then the tutor replies. After the reply, progress tracking, a session summary and a self-reflection step run in parallel, and the reflection feeds into the next turn.
- Built on Azure OpenAI, with Azure's content filters as a second layer of safety.
Signing in where students already are
Universities expect to use their own identity providers, so I built single sign-on with Better Auth covering Microsoft Entra ID, Google and SAML. The careful part was account linking: joining someone's SSO identity to their existing account safely, and refusing the join when it could hand an account to the wrong person.
Duologue is also an LTI 1.3 tool, so students can launch it straight from their course page in Canvas, Moodle or Blackboard Learn and land on the same account they use with SSO.
Stack
A TypeScript monorepo with Next.js and Tailwind CSS, backed by PostgreSQL with pgvector for retrieval. Hosted on Vercel with AWS, and tested with Vitest and Playwright.

