AI-Powered Learning Content Platform
- Client
- EdTech / Video-Based Learning Platform
- Duration
- Ongoing / Production
- Built with
- Next.js, TypeScript, PostgreSQL, Prisma, AWS Bedrock, Claude, AWS Transcribe, Amazon Nova Canvas, AWS Rekognition, AWS Comprehend, AWS SQS, AWS S3, Pusher, Stripe
Images coming soon — real screenshots being uploadedA Next.js platform that turns a recorded video talk into a structured, shareable learning resource — transcripts, summaries, quizzes, exercises, and reflection prompts, all generated automatically from a single recording. Record yourself teaching something once, and the platform turns it into a full mini-course you can share, embed, or sell. Built with AWS Bedrock (Claude) as the core reasoning engine, not a bolted-on feature — every piece of generated content, from quiz questions to marketing copy, runs through purpose-built prompts against Claude, with content moderation and guardrails sitting in front of every AI response.
Architecture
A Next.js App Router app (Postgres + Prisma) orchestrating a set of AWS services rather than doing the heavy lifting itself — video processing and AI analysis run as async jobs, not inline in the request/response cycle:
- Web app (Next.js on Vercel) — recording UI (built-in teleprompter, video editor with subtitle editing/trimming/overlays), organization hubs, public embed pages, editor for reviewing and rewriting AI-generated content
- Async job pipeline (AWS SQS + external worker) — video and AI analysis jobs are dispatched to a queue rather than processed synchronously, since transcription and AI generation take too long for a single web request; a worker outside the app picks up jobs and calls back into the app when done
- Realtime updates (Pusher) — private per-user channels push live status updates as jobs complete, so the UI moves from "processing…" to "done" without polling
The AI pipeline, end to end
- Recording & upload — webcam recording with a teleprompter, direct upload, or a signed-token webhook redirect from an external video partner; every video is tracked through its own transcoding and AI-job status separately, since two different pipelines run on the same file
- Transcription (AWS Transcribe) — speech-to-text on the raw video, with a dedicated Māori-optimized transcription mode built on a partnership with Te Hiku Media, exposed as a toggle right in the recording UI
- Content moderation — uploaded images are checked by AWS Rekognition before AI ever touches them (configurable safety rules), text can be redacted via AWS Comprehend, and every Bedrock call runs through a Guardrail that can block or redact a response before it reaches the user
- AI analysis (AWS Bedrock, Claude) — once there's a clean transcript, it's run through a battery of purpose-built prompts: video summary, learning outcomes, quiz questions and answers, practical exercises, reflection/behavior-change prompts, and short marketing copy. Most prompts are stored as versioned Bedrock Prompt ARNs so they can be tuned without a code deploy
- Image generation (Amazon Nova Canvas) — users can request a custom overlay image for their video in a chosen style (photo-realistic, illustrated, abstract), generated on demand through the same Bedrock client
- Human-in-the-loop editing — nothing AI-generated is final; everything lands in an editor where the user can rewrite summaries, tweak quiz questions, reorder exercises, or edit subtitles. A visible AI assistance toggle lets a confident user turn the whole pipeline off and write the structure themselves
- Publish & monetize — finished resources live under an organization hub, get a public embed page, and can be gated behind Stripe pricing; full-text search runs off a Postgres
tsvectorcolumn across transcripts and generated content
Engineering notes
- Every generated content type (summary, quiz, exercises) has its own status field and its own linked database table, so partial failures in one pipeline stage don't block the rest
- Long-running steps that still run inline (rather than through the queue) needed extended Vercel function timeouts
- Sentry error monitoring across the app