Vibe Coding with Cursor: Building a Transcription Tool by Prompting Precisely

Introduction
I recently experimented with Cursor and its “vibe code” abilities to add a transcription tool to my website. The goal was simple on paper: allow users to upload a video or audio file, transcribe it using the OpenAI API, and return the transcription as a downloadable file. What made this interesting was not just the feature itself, but how much the output depended on the prompt design and the stepwise verification process.
What is vibe coding?
Vibe coding is a term used to describe the process of using AI tools like Cursor to generate code based on natural language prompts. The idea is to provide clear, detailed instructions that guide the AI in producing functional code that meets specific requirements. This approach emphasizes the importance of prompt quality and iterative validation, rather than expecting the AI to produce perfect code in one go.
Why prompts matter
AI coding tools often get criticized for producing buggy or incomplete code. In my experience, much of that criticism boils down to prompt quality. The clearer and more detailed you are about intent, data structures, styles, and libraries, the closer the generated code will be to what you expect.
When starting any software project you need to be explicit about:
- What pages or components should exist
- How those pages should be styled and structured
- What data types and formats are required
- Which libraries and dependencies to use
- How to handle edge cases like rate limiting or file size limits
Prompting Cursor pushed me to think through all of those details up front so the tool would need minimal manual correction.
What I asked Cursor to build
My prompt included very specific instructions:
- Create the pages required for a new tool and style them to match my existing blog layout
- Use TypeScript and define the data structures and types that the tool should employ
- Allow uploads of video or audio files, and transcribe them via the OpenAI API
- Provide the transcription as a free download for the user
- Install and use required libraries, and implement rate limiting so my API key isn’t abused
- Break the task into small, verifiable steps and ensure the code compiles
How Cursor performed
Cursor processed the prompt and proceeded through a sequence of steps to implement the feature. It installed dependencies and set up resources, creating a new page that mirrored my blog layout. In total there were roughly nine distinct steps it took to scaffold and populate the feature.
A live check
I tested the resulting tool in the browser. The new resource page had been created and styled to match the blog as requested. I uploaded a video under the 25 MB threshold and attempted a transcription. The tool didn’t complete perfectly on the first try, which reinforced a core point:
You shouldn’t expect AI tools to build a complete, production-ready feature in a single pass. Instead, approach the work in small increments and verify each part as you go - just like regular software development.
Lessons learned
- Prompt specificity matters: The more details you provide, the better the generated code will fit your needs.
- Incremental validation is essential: Break the task into small, testable problems and validate each step.
- AI helps accelerate work, but it doesn’t eliminate the need for a developer: You still need to inspect, debug, and refine what the AI produces.
- Rate limiting and API security are non-negotiable: If you let a tool use your API key without constraints, you risk abuse and unexpected costs.
Recommendations for using AI to build features
- Draft a full specification before you invoke code generation. Include types, interfaces, routes, and error flows.
- Ask the tool to mimic existing components or pages so styling and UX stay consistent.
- Require the tool to list and install dependencies so you have a reproducible environment.
- Keep the work iterative: generate, test, fix, and repeat.
Conclusion
The vibe code experiment with Cursor was a useful reminder that AI can significantly accelerate development when guided by precise prompts and careful checks. It won’t completely replace the developer, though - at least not yet. If you want reliable, maintainable features, plan the design up front, split work into small pieces, and be ready to validate and correct the generated output.
If you try this approach yourself, start small and iterate. You might be surprised how much you can accomplish when you combine clear human intention with AI assistance.
The final product
After a number of iterations, the transcription tool is live. Be sure to check out the final product here. You can upload a video or audio file, and it will return a transcription of the content.