Posted on March 12, 2025
AI for coding is in a weird spot right now.
You get people claiming that you can build a complete SaaS in 3 days, and others saying that it's worse than useless. Both of these people are probably just exaggerating or straight up lying.
I love coding with Cursor, it's completely changed the way I code, but it's also complete garbage a good deal of the time.
So as an AI skeptic i'll tell you everything I know to make your experience as good as possible.
Note: If you prefer watching rather than reading, here's a YouTube video with the same content.
Let's start with an easy one.
If you don't have a .cursorrules file you are missing out.
(This has changed recently to be a bunch of .mdc files, just CMD+Shift+P New Cursor Rule and it will create one for you in the right place)
You can have one ready to go in about 10 minutes, and it will save you hours of time.
Look up your stack on this list of cursorrules and pull out the best bits.
But my advice is to keep it reasonably minimal and then build on it over time.
You don't need this massive file with every single programming best practice outlined.
The reason for shitty AI output is not because it forgot about DRY or SOLID. And I find that giving it too much input, and having longer chats, is when it starts to fall apart a bit. So keep it light.
And here's the thing: if you notice the same issues popping up again and again, just add a quick line telling it not to. Or even better, in your cursor chat just say "please write me a cursorrule so that you stop doing this particular thing." And then chuck it in there.
Like mine will keep forgetting about nullish coallescing (??) in JS, and even after I fix it up it will revert my change in its future changes. So of course I put that rule in and it won't happen again.
And then at the top of the file, just write some text about what the project is about. If you have a particular file structure and way of organising code that is great to put in as well.
I have found by far the best thing for improving the output is telling it exactly where to find the code it might otherwise spit out at you.
Like if you know it's going to need a certain function, or create a procedure very similar to something that exists, give it that context.
And you don't necessarily need to tell it the exact function - we're trying to make our lives easier here, of course I still want this to be easier than just writing the code myself.
After I tell it what I want I often just do a see @schedule.ts @utils.ts @ScheduleHeader.tsx and just include anything that will help it do its task - even in a more abstract "here's how something vaguely similar has been done" kind of way. The AI has been trained on a bunch of random code, so if there's anything particular to your project, then you need to tell it.
Okay and let's get into some rapid fire tips.
One of the best things about AI is that you can now write code when your brain is fried, and tackling a problem would normally be outside of your reach.
It's great for sitting on the couch and cranking out some mostly decent code, but then other days of course you just spend an hour chasing "You're right" "I see the issue now" only to end up in a worse place than you started.
But I would recommend experimenting with it and learning how best to talk to it. It's not going away, and it's just another tool that you can use.
And if you're a junior developer I would of course be very wary with it. And anyone for that matter really. I do think there's something to be said for the atrophying of my coding skills.
I also think one of the biggest factors in your experience with coding with AI is going to be what you are coding, and which tech stack you are using. So if it just keeps sucking no matter what you try, and you feel like you're going crazy seeing everyone hype it up, it's probably not your fault.
👋 Thanks for reading!
Some links if you're interested:
I build (mediocre) startups and document my journey onYouTube
Available for freelance work: craux.studio
My email: crauxy@gmail.com