Inspiration
We wanted to rethink how studying feels. Social media is addictive because of its infinite scroll, instant rewards, and constant novelty. What if learning could use the same mechanics? That’s how Mathgram was born — a way to turn doomscrolling into productive practice.
What it does
Mathgram lets users pick five math topics and instantly generates an infinite scroll of questions powered by AI. Each card can be a definition, cloze, or multiple-choice question. Learners earn streaks, coins, and confetti rewards as they go, making the experience fun and habit-forming.
How we built it
- Frontend: Next.js with React, TailwindCSS, Framer Motion for animations, and Lucide for icons.
- Backend: Node.js with Express, serving a
/cardsendpoint. - AI: Mistral API generates personalized math questions dynamically based on chosen topics.
Challenges we ran into
- Getting live AI question generation to run fast enough for a smooth feed.
- Balancing minimalism with gamification without adding unnecessary complexity.
- Managing content flow so the feed feels infinite but still relevant to the chosen topics.
Accomplishments that we're proud of
- Built a fully functional end-to-end app with both frontend and backend in a short timeframe.
- Created a UI that feels polished, fun, and addictive while staying minimal.
- Integrated AI so no two feeds look the same — every user gets fresh content.
What we learned
- How to combine addictive UX patterns from social media with educational use cases.
- Practical challenges of integrating an AI API into a real-time user experience.
- The importance of having clear separation between frontend (UI) and backend (content generation).
What's next for MathGram
- Smarter personalization by tracking weak areas and generating focused practice.
- Expanding beyond math to cover other subjects.
- Adding social features like leaderboards and streak sharing.
- Exploring offline mode with lightweight procedural generation for practice without internet.
Built With
- express.js
- mistral
- next.js
- node.js
- ts
Log in or sign up for Devpost to join the conversation.