What It Does:
Amo Note takes a YouTube video, uploaded audio/video file, or live recording and transforms it into formatted notes or an editable slide deck. Every generated note is linked back to the exact timestamp in the source media, letting users click any bullet point to jump directly to that moment. I took this project from initial concept to a production app with active, paying users.


If you want to check it out, here is the link to my website:
amonote.com
What I Worked On:
This project spanned the full stack of a production web app:
-
Frontend & UI (React / Next.js): I used Claude as an AI pair programmer to accelerate component rendering and UI boilerplate. I designed the user experience and state flow, leveraging Claude to execute seven distinct note layouts (Cornell, outlines, mind maps, comparison tables, flowcharts, and slide decks).
-
Backend Architecture: Built with Supabase for auth and data storage, paired with a Python server for audio transcription and file export. Long-running tasks execute asynchronously in the background to keep the UI responsive.
-
Payments & Usage Limits: Integrated Stripe for recurring subscriptions and real-time usage tracking.
-
AI & Guardrails: Wrote specialized system prompts for each note format, including validation rules that force the LLM to flag uncertainties instead of hallucinating.
_edited.png)
The Feature I’m Most Proud Of
Instead of outputting static images, Amo Note converts videos into fully editable PowerPoint files (.pptx).
To keep design consistent across any topic, I intentionally avoided AI stock image selection, which is often unreliable. Instead, I built a clean, layout-driven design system using code-generated shapes and typography. It supports four presentation styles (Dense Notes, Live Presentation, Q&A, and Narrative Flow), plus an auto-mode that selects the best fit based on content density.
.webp)
Technical Challenges & Edge Cases:
Some of the most valuable lessons came from tracking down production bugs:
-
Job Cancellation & Quota Bounding: Moving generation to a background task meant frontend cancels didn't stop the server, leading to unfair charges. I built a client-to-server cancellation handshake to cleanly abort tasks and preserve user quotas.
-
UI Design Psychology: Learned to optimize the space I had on my website and tried to follow the Dieter Rams principle of design by making a product that is useful and aesthetically understandable to users.
-
Environment Drift: Learned to enforce strict deployment verification after finding local fixes hadn't made it to production due to branch divergence.
_edited.png)
Reflection:
I will say that, as a summer project, I have gained a tangible understanding of what it takes to build a business and an app, and the multitude of possible paperwork. I have a feeling that I am getting severe carpal tunnel after the amount of testing I did to have this app run. Also, using AI tools like Claude reinforced that modern engineering is less about writing repetitive boilerplate and more about system architecture, prompt design, and rigorous debugging. Given that, I have also gained an important perspective on how companies use it, because time is a valuable commodity for work. However, I realized that it is easy to get into the realm of comfort that comes from the power at the access of a few key strokes. So, I always had time to learn the overarching issues and learn how they can be fixed, and through that I learned a decent amount of valuable things. I have considered to do more with this app, but so far, I feel like I gained a lot of insight that i might need to use for future projects.
