I just built sensaro.ai from the ground up, and Cursor made it possible.
I thought I'd share my process for the IH crowd!
I've been a PM for 15 years, and back in the day I build basic websites for small business before joining what I considered 'proper' software teams building actual products.
I have done a fair amount of design, loads of front-end (although I started when it was all about standards compliant CSS!), and a bit of Rails development before.
I've also been around some very strong dev teams, so I know HOW
to build software and I'm no stranger to the terminal, code, databases, github, deployment etc etc.
BUT - it's the last mile that has always stopped me. I've never been a full-time developer, so I just don't have the skill / fluency / knowledge that folks who code 9-5 have.
Enter AI, and my tool of choice Cursor.
With Cursor I can design and architect an app, and effectively pair programme to create what I want.
I use AI in 3 ways for developing:
I should say; in terms of models I generally use 'auto' in Cursor. I sometimes jump into ChatGPT (via my browser) to check things and mark Cursor's work (it's quite fun to pair them off against each other).
Anyone who has spent more than 5 minutes playing around with Vibe Coding will know how messy it gets. It's verbose, overly complicated, hard to control and forgets what it's done before. It's a bit like a genius junior dev who has memorised every language and theory, but has never actually built anything before. It's also desperate to please, and obviously moves very fast.
Those things combined mean that when you ask it to create a basic html page it does that, and also creates a content management system with a tonne of dependancies and a new database separate to the one you were already using.
Ok, maybe it's not that bad.
But if you want to build anything substantial you need a way to restrain the model and protect all the stuff you want left alone.
My first tool for this is obviously version control. Perhaps most people take this as read but I don't hear about it much in the context of AI and vibe coding. Having solid version control and working on feature branches gives me a huge amount of confidence knowing that AI can rip through and trash everything and I can always revert if necessary.
The second thing I rely on is a clear process and structured prompts in the form of markdown files that I reference.
I learned this tip from Ryan Carson who has been inspirational for me on the web since I first stared 15 years ago. Check out his repo and files here: (https://github.com/snarktank/ai-dev-tasks/tree/main) - although I've modified the files a fair amount.
The basic process is this.
I define a feature in a few paragraphs and reference a 'create-PRD' markdown file. Cursor reads that file and, as specified in it, comes back with some clarifying questions. This gives me a first glance at whether it understands what I want, and how it's going to approach it.
I can tell if I haven't defined (or understood) the feature well enough, because the follow up questions from Cursor will be vague or confused. In that case I go back and do some more research so I can better define what I want. This is where my PM experience comes in handy - scoping and defining what you want to build is incredibly important. Cursor will never say "Oh, I don't understand this very well so I'm not going to build it." It will just crack on, and leave you with a total mess.
Once I've answered the questions Cursor will create a PRD file (again in Markdown). This gives us both visibility over what will actually be built, and what is out of scope. Again, this is a chance to check things are on the right track. I can always amend it if I'm worried.
This is extremely helpful as I now have complete visibility of what Cursor is going to do. Again, I can jump in or question any stages I don't understand or don't agree with. I also have a historical record of what was done, so if I need to go back later I can see exactly which files were edited and how something was implemented.
This process sounds a bit laborious when you read through it in a post like this, but depending on the size of the feature it only takes a few minutes to create the PRD and then the tasks list.
It does slow development down a bit, but compared to me doing it all myself or with a team it is immeasurably quicker. I can build pretty complex features in an hour or so. Big features might take a few hours.
I integrated Stripe and had it in production in about two hours. I've worked with dev teams who have taken a week to do this.
Conclusion
I built the whole of www.sensaro.ai with this method. It took a little over a month (it's a side project), and I really enjoyed the whole process. My coding and technical chops have improved massively and I'm looking forward to diving into something new.
If you have any tips or tricks that you are using to build I'd love to hear about them! I still feel like an amateur and I'm sure there's a tonne more I could be doing to improve the way I build.