I Got Tired of Setting Up React Projects, So I Built AI Agents to Do It For Me
Spoiler: They're way better at it than I am
The Problem That Wouldn't Go Away
Look, I'll be honest. I'm lazy.
Not in a bad way, but in that good developer way where you hate doing the same thing twice. And I was setting up React/Next.js projects constantly. New idea? New side project. Experimenting with something? You guessed it - new project.
The ritual was always the same:
-
npx create-next-app
(wait 2 minutes) - Install Tailwind (configure, wait, debug why it's not working)
- Set up Express backend (more waiting, more configuring)
- Write the same auth boilerplate I've written 47 times
- Set up the database stuff
- Actually start building the thing I wanted to build
By the time I got to step 6, I'd lost momentum. Sometimes I'd just give up entirely.
My Weekend Rabbit Hole
A few months back, I was messing around with multi-agent AI stuff. You know how it is - you start reading about something interesting, next thing you know it's 3 AM and you're building something you never planned to build.
I had this dumb thought: "What if I could just tell an AI what I want to build, and it handles all the setup crap?"
Not just code completion. Not just answering questions. Actually spinning up environments, writing files, running commands, the whole nine yards.
Most people would think "that's impossible" or "that sounds dangerous." I thought "hold my coffee."
Building Something That Actually Works
Here's where it got interesting. I tried the obvious approach first - one big AI that does everything. Total disaster. It would start strong, then get confused halfway through and start overwriting its own work.
Turns out (and this probably should have been obvious), building apps requires different types of thinking:
One part of your brain plans the architecture. Another part writes the actual code. Another part runs tests and commands. Another part reviews everything to make sure it's not garbage.
So I split it up:
// This actually works way better
architect_agent: "Figures out what to build and how"
coder_agent: "Writes the actual files"
executor_agent: "Runs commands and manages stuff"
reviewer_agent: "Makes sure everything isn't broken"
Each one is good at their specific job. They talk to each other through simple messages instead of trying to do everything at once.
The Security Nightmare I Had to Solve
Obviously, letting AI run arbitrary commands on your computer is... not smart. I learned this the hard way when an early version tried to rm -rf
something it shouldn't have.
So everything runs in isolated containers now. Each session gets a fresh environment that can't touch anything important. The AI can only run a whitelist of safe commands:
// If it's not on this list, it's not happening
const safe_commands = [
'npm', 'yarn', 'git', 'mkdir', 'touch', 'ls', 'cat', 'cd'
];
Also, file operations only work inside a specific workspace folder. No sneaky business with system files.
The Numbers Don't Lie
After letting this thing generate about 1,000 projects, here's what actually happened:
Setting up a new project used to take me 45-60 minutes on average (including all the "wait, why isn't this working?" debugging). Now it takes 3-5 minutes.
But here's the weird part - the AI is actually better at the setup than I am:
- Makes way fewer ESLint errors in boilerplate code
- Never forgets to add TypeScript types
- Always sets up tests (which I definitely forget to do)
- Follows consistent patterns (unlike my "whatever works" approach)
The most common requests are authentication (67% of projects), database setup (54%), and API routes (49%). Makes sense - those are the boring parts nobody wants to write from scratch every time.
Why I Made It Opinionated (And You Should Too)
I could have tried to support every framework under the sun. Vue, Angular, Svelte, Python, PHP, whatever. But I didn't.
justcopy.ai only does React/Next.js + Tailwind + Node/Express. That's it.
This sounds limiting, but it's actually what made it work. When the AI has clear constraints, it makes way better decisions. It knows exactly what "good" looks like in this specific context.
Plus, honestly, this is what I use for everything anyway. If you want Django + Vue, build your own thing.
The Communication Breakthrough
The biggest technical win was figuring out how to make the agents talk to each other without stepping on each other's toes.
Instead of just throwing text back and forth, they send structured messages:
{
type: 'file_operation',
from: 'architect',
to: 'coder',
action: 'create_component',
target: 'src/components/Dashboard.tsx',
context: {
imports_needed: ['react', 'tailwind'],
relates_to: ['User.ts', 'api/auth.ts']
}
}
This stopped the chaos where multiple agents would try to modify the same file at the same time.
What's Next
Right now, this works great if you want to build things the way I build things. But I know that's not everyone.
Next up: letting you configure the agents for your preferred stack. Want Vue instead of React? Python instead of Node? Different coding patterns? You'll be able to set that up.
# Coming soon-ish
my_preferences:
frontend: "vue"
backend: "python/django"
styling: "scss"
deployment: "docker"
Stuff I Learned Building This
- Multiple specialized agents > one "smart" agent
- Constraints make AI work better, not worse
- Security is harder than you think (containerize everything)
- Structured communication prevents AI chaos
- Real-world testing beats theoretical planning every time
Tools That Made This Possible
- LangChain/AWS Strands for wrangling the agents
- Docker for not letting AI destroy my computer
- OpenAI and Anthropic API for the actual intelligence
- A lot of coffee and stubbornness
- AWS for everything else
Try It If You Want
I put this at justcopy.ai if you want to see what happens when AI handles your project setup.
Honestly, I'm curious what other people think. What setup tasks do you hate most? What would you want AI agents to handle? What tech stacks should I add next?
The goal isn't replacing developers (that would be dumb). It's getting rid of the repetitive stuff so we can focus on the interesting problems.
Been working on this for months and it still feels like magic when it works. Which is most of the time now.
What's the most annoying part of starting new projects for you? Let me know in the comments.
Top comments (0)