Inspiration
The problem most students run into while learning anything is that they don't practice enough. They are not solidifying their knowledge by testing enough. Even if they do they are not doing it in repeat so that they don't forget a lot of it. This forgetting happens in a curve gradually. Also even if they try to use the regular flashcard apps generating question is very time consuming . SIMPLY no app has all of these features that utilizes active recall, space repetition, learning in public, learning via teaching (Feynman Technique) or visually tracking progress altogether. I wanted to create an ultimate study tools using these main principles that has everything altogether.
Feynman Flow was inspired by the famous Feynman Technique — the idea that the best way to learn is to teach the concept in simple language to enforce repeated active testing in public. Using the Socratic Sidekick feature students can answer Gemini's curiosity driven questions and solidify conceptual understanding better.
Most existing study tools focus on passive recall or static flashcards. We wanted something more interactive and conversational, where learners are guided to explain, revise, and refine knowledge in their own words.
This project aims to bring together flashcards, spaced repetition, and reflective explanation into a single smooth workflow.
What it does
Feynman Flow helps users:
- Create decks and flashcards for active recall
- Review cards based on spaced-repetition scheduling
- Powered by Gemini I we use questions driven learning
- Upload PDFs to auto-generate Q&A
- Use a Socratic Sidekick that asks topic-driven questions
- Auto-format user responses into structured notes
- Store notes blog-style for future review
The goal is to make learning more like teaching — conversational, iterative, and public.
How we built it
Frontend:
- HTML, CSS, vanilla JavaScript
- Simple UI components for flashcards, Q-gen view, and Sidekick pane
- API routing configured via
netlify.toml
- HTML, CSS, vanilla JavaScript
Backend:
- Python + FastAPI
- SQLite + SQLModel for lightweight storage
- Endpoints for decks, cards, spaced repetition, PDF ingestion, and blog posts
- Socratic Sidekick workflow + Gemini API integration
- Python + FastAPI
Infra / Deployment:
- Backend → Railway
- Frontend → Netlify
- Redirect proxy for REST routes (
/api/* → Railway)
- Backend → Railway
The spaced-repetition logic is implemented using simple scheduling with: [ \text{nextDue} = \begin{cases} \text{now} + 1\text{ min} & \text{if reviewed as "again"} \ \text{now} + 10\text{ min} & \text{if "good"} \ \text{now} + 1\text{ day} & \text{if "easy"} \end{cases} ]
Challenges we ran into
- Deploying Frontend + Backend separately and getting API routing correct
- Proxying
/api/*routes from Netlify → Railway - Handling PDF text extraction consistently across files
- Keeping the Socratic workflow simple while still user-driven
- Ensuring session state persisted during conversations
- Debugging Gemini integration when providing contextual Q&A
Accomplishments that we're proud of
- Built a full end-to-end learning tool in a short timeframe
- Seamlessly integrated conversational generative AI with spaced-repetition
- Designed an intuitive UI that makes reflective learning frictionless
- Created Q-generation from PDFs that helps bootstrap study decks
- Built a system that supports both private flashcards and public blog-style posts
What we learned
- How to use FastAPI + SQLModel for rapid backend development
- How to connect external LLM APIs into multi-turn workflows
- Practical state-management for interactive chat sessions
- Deployment workflows across Netlify, Railway, and environment configs
- Why the Feynman Technique is powerful: it exposes gaps in understanding
What's next for Feynman Flow
- Add richer spaced-repetition algorithms (e.g., SM-2 or FSRS)
- Sync decks across devices + user accounts
- Add multimedia cards (images, code blocks, video timestamps)
- Improve PDF Q-gen with more intelligent chunking + summarization
- Support collaborative or shared decks
- Make the Socratic Sidekick dynamically adaptive based on user proficiency
Feynman Flow aims to turn every learner into a teacher — reinforcing understanding through explanation, iteration, and reflection.

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