About
Learn Anything is a platform for learners of all backgrounds which generates structured courses for topics where formal courses are difficult to access or may not even exist; eliminating the frustration of sifting through disjointed web pages and video tutorials.
Inspiration
I came up with the idea while studying for the AWS Solutions Architect certificate and got annoyed trying to keep track of all of the different learning resources I was using to practice. Many of the resources I wanted to practice with were behind a paywall and it was difficult to get quick feedback when I got stuck. I ended up getting the certificate with some effort, but this hackathon gave me a good excuse to build the tool I would have wanted when studying.
How I Built It
The project uses Nuxt, Vue, and TypeScript for the UI / API, Firebase for authentication and storage, and is deployed using Vercel. Gemini is used for all of the actual content generation and images were created with Midjourney.
Some Accomplishments
Completed the concept I set out to create: AI generated complete courses, tailored to the learner, with built-in assistants able to help with context of what you're learning
User Accounts: You can start using Learn Anything immediately without creating an account, but both email/password and Google sign-ins are available if you want to save your progress.
Mobile Responsiveness: The application is built to work on any screen size. You can switch between learning on your desktop and your smartphone with ease.
Smooth UI/UX: I set out to not only prototype the concept, but finish with a product I was proud of. I put a lot of work into the UI, page layouts, animations, and generating a consistent set of characters for the learning assistants. There are lot of small UX niceties I added like rerouting to your original page on login/signup, 'exit warning' modals so you don't accidentally lose progress on quizzes, etc.
What I Learned
Pre-Loading Content: One of the issues you run into with any generative model is long inference times. Generating entire courses complete with subtopics, quizzes, questions, explanations, and descriptions can take upwards of a minute combined. I had to come up with several different techniques for hiding the portions of the content loading and persisting large chunks of it locally and to Firebase to reduce the waiting time for the user.
Vercel Hosting: Aside from using Gemini in creative ways, I found this hackathon was a good opportunity to learn more about different methods of deploying applications. Vercel was new for me and turned out to be a great way to host static and dynamic content alike, serverless endpoints, and integrate with GitHub and analytics for a more complete development cycle.
Next Steps for Learn Anything
Over the course of the ~100 hours I put into this project, I ended up getting pretty invested. I'm excited to continue adding to it after the hackathon is finished and look forward to getting some community feedback on things I could improve, bugs I missed, and how well it works when people actually use it for studying.
Some specific things I'm planning to add:
More Question Types: Different topics are best taught in different ways. Not to mention everyone has a unique style of learning best suited for different interfaces. I'm planning to create question types like Free Response, Matching, and other multi-modal options like Image-based questions, Speech-to-Text, and others.
Improved External Resources: Right now, the learning assistants are instructed to provide links to outside resources that they don't have the full context of. There are much better ways to natively support wikipedia and video content when pulling in external sources.
Course Notes: Learners will undoubtedly want to keep track of the things they learn to reference again later. A plan I have for this is building an editable 'notebook' that users can easily add content to, record learning assistants responses in, and save specific questions to come back to later.
Built With
- firebase
- gemini
- node.js
- nuxt
- typescript
- vercel
- vue
- vuetify


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