
Repeto
AI study app: upload slides or papers, then summarize, chat, quiz and diagram them
- Role
- Co-founder, built most of the product
- When
- Jan – Aug 2024
- Status
- Acquired · #3 Product of the Day
- Highlight
- 3K users in its first 2 weeks
Overview
What it is
Repeto lets a student upload a PDF, PPTX or DOCX and study it with AI. The app streams a summary and chat answers token by token, and generates quizzes, flashcards and Mermaid diagrams in background jobs. It was paid by subscription with a free trial and an affiliate programme.
I built most of the product: the Django REST API, the WebSocket streaming path, the Celery job pipeline, document ingestion and per-user retrieval, Stripe billing, and most of the Next.js frontend.
My co-founder wrote the prompts, the summarisation chains and the model fine-tuning.
Repeto reached 3,000 users within two weeks of launch, got 212 upvotes and #3 Product of the Day on Product Hunt, and was acquired.
Why it’s interesting
- A LangChain callback buffers model tokens and pushes them into a Django Channels group, so the browser renders the answer while the chain is still running.
- One WebSocket per user doubles as the result channel for Celery jobs: topics, quizzes, flashcards, diagrams and starter questions arrive as typed messages.
- Each user gets their own Chroma collection, and every chunk carries document, page and paragraph metadata so retrieval can be filtered to one document.
- A history-aware retriever rewrites follow-up questions into standalone search queries before they hit the vector store.
- Uploads are converted to PDF, capped at 200 pages and embedded. If text extraction fails, the record is rolled back and the failure is logged for follow-up.
- 3K
- users within 2 weeks of launch
- 212
- upvotes on Product Hunt
- #3
- Product of the Day
- Acquired
- after launch
Architecture
How it fits together
Try it
From lecture slides to a quiz
A student uploads their slides, Repeto generates a quiz from them, and they practise. This is an animation of that flow.
Screens
A closer look
Dashboard and library. Recent documents and practice sets, a folder tree, and charts for score and daily activity.
1 / 8Tap a screenshot to enlarge it.
Features
Everything it does
Library
- Multi-format upload — PDF, PPTX and DOCX; Office files are converted to PDF with unoconv.
- Page cap — Documents are truncated at 200 pages before embedding.
- Folder tree — Drag-and-drop folders, rename and delete.
- Dashboard — Recent activity, practice-score chart and a 10-day activity chart.
Chat
- Streamed summary — Summarize the document on demand; the answer streams into the chat.
- Retrieval chat — Free-form questions over the uploaded document, with memory of the last 20 messages.
- Starter questions — Suggested questions are generated after upload and pushed to the page.
- Per-answer actions — Simplify an answer, visualize it as a diagram, or generate follow-up questions.
- Explain a screenshot — Draw a region of the PDF and send it to a vision model.
Reader
- PDF reader beside chat — Slides and conversation side by side.
- Selection menu — Select text to summarize, clarify it, or save it to notes.
- Notes editor — A block editor per user, fed from the selection menu.
Practice
- Topic extraction — Topics are extracted per document in a background job.
- Quizzes — 5 to 30 questions: multiple choice, true or false, and short answer with keyword matching.
- Flashcards — Generated from topics, with No, Almost or Yes self-grading.
- Score history — Attempts are stored and charted per document and overall.
Billing and growth
- Stripe subscription — Monthly or annual Checkout with a trial, promo codes and automatic tax.
- Affiliate referral — The referral id travels in Checkout metadata.
- Cancel flow — Cancellation records a reason and cancels at Stripe.
- Lifecycle email — Reminder and feedback emails sent by cron through Brevo.
Tech stack
What it's built with, and why
Frontend
- Next.js 14 + React 18
- App router pages for the library, chat, practice and notes.
- Redux Toolkit
- Holds user and document state.
- Tailwind
- Styling for the app and marketing pages.
- react-pdf
- PDF reader beside the chat.
- Mermaid 10
- Renders generated diagrams inside an iframe.
Backend
- Django 5 + DRF
- REST API for auth, documents, chat, practice and payments.
- Django Channels
- Per-user WebSocket consumer that receives streamed tokens and job results.
- Celery
- Background topic, quiz, flashcard, diagram and starter-question jobs.
Data
- MySQL
- 26 models over 48 migrations.
- ChromaDB
- Paragraph-level vectors in one collection per user.
- Redis
- Channels layer and Celery broker.
AI
- LangChain
- Chains, history-aware retriever and the streaming callback handler.
- OpenAI
- Chat, embeddings, GPT-4 Vision for screenshot questions.
Payments & integrations
- Stripe
- Checkout subscription with trial, promo codes and webhook role upgrade.
- Brevo
- Reminder and feedback emails.
- PostHog and Mixpanel
- Product analytics.
- Tolt
- Affiliate portal.
