The Problem Worth Solving
Ever spent hours crafting quiz questions? Writing good questions is an art — you need engaging stems, plausible distractors, appropriate difficulty, and clear explanations. For educators and content creators, this can turn a 10-page article into a 3-hour quiz creation marathon.
I wanted to change that. What if AI could do the heavy lifting while you focus on teaching?

What I Built
QuizItNow is an AI-powered quiz generation platform that turns any content into a complete assessment in seconds. Paste text, drop in a YouTube URL, upload a PDF, or link an article — and watch AI generate thoughtful, contextual questions at your chosen difficulty level.
The magic? It's not just spitting out questions. It understands your content, extracts key concepts, and crafts questions that actually test comprehension. Plus, it gives you full control: 3 to 25 questions, four difficulty modes (including "God Mode" for the brave), and multiple question formats.

The Journey: From Python to TypeScript
This project started as a FastAPI + Python backend with a separate Next.js frontend. Classic setup, right? But as I scaled it, I kept context-switching between languages, juggling different type systems, and dealing with deployment headaches.
Then I made a bold call: rewrite the entire backend in TypeScript.
Why? Because having one language across the entire stack is a game-changer:
- Shared types between frontend and backend meant fewer bugs
- No more "it works in development but fails in production" surprises
- Edge-ready serverless functions that deploy anywhere
- One build process, one language, one mental model
The rewrite was intense, but worth every line of code. Migrated from LangChain to Vercel AI SDK, switched from PostgreSQL to MongoDB for flexibility, and rebuilt the auth system with NextAuth.js v5.

Technical Highlights I'm Proud Of
1. Structured AI Output Generation
Getting consistent, properly formatted responses from AI is hard. LLMs are creative but unpredictable. The breakthrough was using Vercel AI SDK's generateObject with Zod schemas:
const quizSchema = z.object({
title: z.string(),
questions: z.array(z.object({
question: z.string(),
options: z.array(z.string()).length(4),
correctAnswer: z.string(),
explanation: z.string(),
}))
});
This guarantees every AI response matches my schema exactly. No parsing errors, no malformed JSON, no missing fields. Just clean, type-safe quiz data every time.
2. Universal Content Extraction Pipeline
The platform accepts virtually anything:
- Text: Just paste it
- YouTube videos: Extract transcripts automatically
- Web articles: Smart scraping that removes ads and navigation
- PDFs: Upload to S3, extract text, clean it up
Each input type has its quirks. YouTube transcripts might be auto-generated (messy). Web scraping hits paywalls. PDFs have weird formatting. Building a robust pipeline that handles all these edge cases was a fun challenge in resilience engineering.

3. Difficulty Calibration
"Easy" vs "God Mode" isn't just prompting the AI differently. It's about:
- Question complexity (recall vs synthesis)
- Distractor quality (obvious wrong answers vs subtle traps)
- Concept depth (surface level vs domain expertise)
- Explanation detail (simple vs comprehensive)
I spent time tuning prompts and testing with real content to nail these difficulty tiers. God Mode genuinely makes me pause and think.
What I Learned
TypeScript is a superpower for full-stack apps. The confidence you get from end-to-end type safety is unmatched. Refactoring becomes fearless.
AI SDKs matter. Vercel AI SDK's structured output generation was a revelation. It turned unreliable AI outputs into predictable, type-safe data.
Content extraction is deceptively hard. What looks like a simple HTML scrape becomes a battle with edge cases, encoding issues, and hostile websites.
User experience details compound. Loading states, error messages, progress indicators — these "small" touches make the difference between "meh" and "wow."
The Stack
Built entirely in TypeScript with modern tools:
- Next.js 16 with App Router and Server Components
- NVIDIA NIM AI (Meta Llama 3.1 405B) via Vercel AI SDK
- MongoDB for flexible data storage
- NextAuth.js v5 for OAuth (Google, GitHub)
- AWS S3 for file uploads
- shadcn/ui + Tailwind CSS v4 for UI
- React Hook Form + Zod for forms
- Vitest for testing
Deployed on Vercel with automatic preview deployments. Docker-ready for self-hosting.
What's Next?
This project taught me that the best tools feel effortless to use. There's still so much potential:
- Real-time collaboration on quiz creation
- Analytics dashboard to track quiz performance
- Image support in questions
- OpenAI Whisper for audio transcription
- LMS integrations (Canvas, Moodle, Blackboard)
- Public API for developers
Try It Yourself
Curious? Try the live demo or dive into the source code on GitHub.
Start with a blog post or a YouTube video and watch AI do its thing. Pick "God Mode" if you're feeling brave.
Built with Next.js, TypeScript, and AI
Because creating quality assessments should be fast, not frustrating.