Course Copilot
Course Copilot is an editorial learning platform that turns community contributions into structured, discoverable courses. Learners browse a course graph and course pages; contributors submit documents or trusted video links; the processing pipeline extracts, classifies, deduplicates, and routes that material; editors review the resulting queue before it becomes part of the learning experience.
Why it matters
Most learning platforms start with a fixed catalogue. Course Copilot starts with useful knowledge that people already have and gives it an editorial path into a coherent curriculum. The result is a feedback loop:
contribution -> secure processing -> AI classification -> course matching
-> moderation/editorial review -> better course graph
What is implemented
Learner experience
- Editorial landing page with the product story and calls to action.
- Authenticated dashboard and responsive learner workspace.
- Course discovery, demo catalogue data, course cards, course taxonomy, and course detail pages.
- Course graph enrichment from approved contributions.
- Settings with processing/privacy controls.
- Responsive visual system for the landing page, workspace, auth, moderation, and admin surfaces.
Contribution and processing workflow
- Authenticated contributions from text, Markdown, CSV, HTML, JSON, PDF, and DOCX uploads.
- Secure public HTTPS YouTube and Vimeo links. The app uses fixed provider oEmbed endpoints and does not download or retain the video.
- Private upload storage with a local filesystem adapter for development and an S3-compatible adapter for production.
- Extraction, raw-file deletion, structured AI classification, embeddings, semantic course matching, and course enrichment.
- Durable, checkpointed Inngest processing with retry/recovery operations.
- Local taxonomy fallback when the OpenAI key is unavailable or classification fails; classification provenance and fallback status remain visible to moderators.
- SHA-256 content matching and order-independent source-set signatures. An identical accepted source can reuse verified classification and course mapping without another model call.
- Processing timeline, upload cleanup, storage reconciliation, and stale-job recovery.
Trust, safety, and editorial controls
- Moderation queue and refactor queue for editorial decisions.
- Educational-content policy with confidence-aware automatic rejection and escalating temporary contribution restrictions for repeated incidents.
- Admin-only control room for course, moderation, processing, and storage operations.
- Destructive admin actions protected by single-use, 8-digit email approval codes tied to the admin, target, and action. Codes expire after ten minutes and lock after five failed attempts.
- Upload validation, rate limits, abuse controls, private object keys, source cleanup, and storage health/reconciliation checks.
- Raw files and extracted source text follow deletion lifecycles; sensitive content is not placed in Inngest event payloads or step results.
Technology
- Next.js 16 App Router, React 19, TypeScript
- PostgreSQL with Prisma
- Better Auth with Polar integration and tRPC
- OpenAI through the Vercel AI SDK for structured classification and embeddings
- Inngest for durable background processing
- Local private storage or AWS S3/S3-compatible object storage
- Tailwind CSS, shadcn-style UI components, Biome
The product is designed for educational content, including practical guides and game-improvement material when the primary purpose is teaching. Promotion, spam, unrelated discussion, and predominantly entertainment content are routed away from the catalogue.
Built With
- betterauth
- codex
- nextjs
- prisma
- tailwind
- trpc
- typescript

Log in or sign up for Devpost to join the conversation.