In January 2025, I was waiting for the perfect idea.
By December, I had shipped four products. Sold software to the company I work for. Earned my first real revenue as an indie hacker.
What changed wasn’t the ideas. It was me.
I stopped overthinking. Started shipping. And learned that earning my first dollar from side projects meant more to me than my entire professional career as a software engineer.
Yeah. I said it.
The Mindset Shift That Changed Everything
Here’s what held me back in 2024: I believed I needed a unique idea.
Why build something that already exists? Another todo app? Another directory? Another SaaS?
Stupid thinking.
In 2025, I realized something obvious. If a product already exists and people pay for it, that’s called validation. The market already said yes. You just need to execute better. Or different. Or for a specific niche.
So I stopped hunting for unicorn ideas. Started building. Stopped losing momentum to analysis paralysis. Started shipping complete products that real users could actually use.
The results speak for themselves.
The 9-5: I Sold Software to the Company I Work For
Let me tell you about the most unexpected win of 2025.
Like most companies, mine had a performance review process with room for improvement. Manual forms, inconsistent approaches, time-consuming steps that added little value.
Evaluators filled forms manually. Gathered feedback by hand. Every person had their own approach. Some parts took hours and added zero value. It was a mess.
I saw an opportunity.
Mapped the whole workflow. Found the inefficiencies. Designed a standardized process. Built an app on top of it.
The stack: TanStack Start, TypeScript, full-stack. My favorite combo when I don’t need separate frontend and backend apps.
But here’s the cool part. I added AI.
The app generates evaluation summaries automatically. It combines feedback from multiple sources. Saves hours of evaluator time. And here’s the controversial bit: it removes human bias.
Same system prompt for everyone. Same output style. Doesn’t matter who’s running the evaluation. The AI treats everyone equally.
Some people might hate that idea. I think it’s a feature.
Timeline: Less than a month. Weekends and evenings only. From idea to company-wide deployment.
The business move: I originally thought about building a SaaS. Selling subscriptions to other companies.
Then reality hit. Every company has different processes. Different hierarchies. Different evaluation structures. I couldn’t scale this alone.
So I pitched the company. Buy the app. All rights included. I’ll help develop it during my 9-5.
They said yes.
Five figures. Done.
The IP belongs to them now. Maybe we’ll turn it into a SaaS together someday. For now, I’m in a hybrid role. Product owner, developer, designer, DevOps. All in one.
Not bad for a side project that started because I was annoyed by a spreadsheet.
The 5-9: Money, Failures, and Lessons
The Win: AI Agents List
My first real revenue from side projects came from a directory.
$39. One customer paying for agent promotion.
I know. Not exactly retirement money. But that $39 hit different than any paycheck I’ve ever received.
By year end, the project generated over $1K. Not life-changing. But proof that I can build something people will pay for.
How it works: User submits an agent URL. That’s it. The rest is automated.
My system scrapes the website. Runs it through a workflow with up to 20 LLM calls. Different prompts for different tasks. Generates all listing content automatically. Categories. Tags. Embeddings. Everything.
V1 was an ugly MVP. V2 got a complete redesign after I saw real traction. I like building UIs. Sue me.
Acquisition: Pure SEO. Organic traffic. No paid ads. No cold outreach. Just content and patience.
Why this worked when other projects failed: Validated demand. People are searching for AI agents. I built where the attention already was.
The Failures: PenPrism and WatchRival
Let’s talk about the projects I killed.
PenPrism was a SaaS for creating opinion-based blog articles. It asked users questions to challenge their perspective. Then generated articles from their answers.
Cool idea. Made less than $50. Abandoned.
WatchRival was a website monitoring tool. Scheduled scrapes. AI-powered insights when changes were detected. Personalized for each user.
Technically complete. Fully functional. Never truly launched.
Here’s the embarrassing truth: I never marketed either of them.
Not “marketing didn’t work.” I literally never tried. I felt resistance and avoided it completely.
I built products without knowing who would buy them. Where to find them. How to convince them.
Classic developer brain. “If I build it, they will come.”
They don’t come. You have to go get them.
The Current Focus: LucidCode
After failing twice at the same thing, I tried something different.
Before writing code, I asked myself: Who is this for? Where do they hang out? How will I reach them?
The answer became LucidCode.
The problem: Semi-technical people try “vibecoding” and end up with an unfixable mess after a few hours.
I’ve seen it with coworkers. They have ideas. They can kind of code. They fire up Cursor or Claude Code. Three hours later, they have spaghetti that even AI can’t untangle.
They’re missing structure.
The solution: LucidCode helps you create proper specifications before you touch any coding tool. Structure your idea. List features. Narrow the scope. Get a clear plan.
Then feed that plan to your AI coding tool. It stays on track. Doesn’t derail. Actually builds what you wanted.
It’s not a coding tool. It’s a tool that makes coding tools work better.
Status: MVP built in a few evenings. Launched December 2025. First signups and trials are in. Conversion looks promising.
2026 plan: Blog content for SEO. Building in public on X. Maybe YouTube.
I’m done building in silence. Time to learn the other half of the equation.
The AGI Moment
I need to talk about Opus 4.5.
I’ve been a Claude subscriber since July 2024. Started 2025 using Cursor daily. LLMs were writing more of my code each month.
Mid-year, Claude Code dropped. I switched immediately. The context limits were magnitudes better than Cursor.
Then November happened.
I upgraded to Claude Max. Tried Opus 4.5.
That was my “AGI moment.”
Here’s the difference:
With Sonnet, I had to craft precise prompts. Point to specific files. Include the right context. Get a solution that mostly worked. Iterate once or twice to fix edge cases.
With Opus 4.5, I type “make X and make no mistakes.”
Press enter. Drink coffee. Come back.
Everything works. Covers edge cases I didn’t even think of. Better than what I would have written myself.
I’m not exaggerating. This is my actual workflow now.
Two days before writing this, I cancelled my Cursor subscription. Don’t need it anymore. The only models I use are Anthropic’s, and my Claude subscription covers everything.
My Identity as a Developer Changed
This is the part that might upset some people.
If AI writes 100% of my code, what exactly is my job?
I’ve thought about this a lot. Here’s my answer:
I’m not a code writer anymore. I’m a decision maker.
My job in 2025 became:
- Thinking about products
- Thinking about outcomes
- Predicting consequences
- Understanding all roles on the team
- Asking the right questions
The actual typing of code? That’s the easy part now.
The hard part is knowing what to build. Why to build it. How it fits together. What could go wrong.
Critical thinking beats coding speed. Every time.
I work in what I call “spec-driven development” now. Most of my time goes into writing and updating Markdown specifications. Those specs become prompts. Claude Code does the rest.
Fewer barriers between disciplines. Frontend, backend, DevOps—it’s all accessible now. The bottleneck moved from “can I build this” to “should I build this.”
Skills I Actually Learned
Not everything was AI-assisted vibes.
Backend and databases: I’m now comfortable building APIs. Several are in production. Node, Express, Bun, Hono, Postgres—pick your stack, I can ship it.
I made plenty of mistakes along the way. Mostly around database design. Relations that didn’t make sense. Migrations that broke things. The classic stuff.
No specific horror stories. Just the normal pain of learning by doing.
DevOps: Basic but functional. I can set up a secure VPS. Configure Docker. Handle DNS. Set up Traefik as a reverse proxy. Manage resources. Lock down security. CDN setup. Enough to deploy my own apps without calling for help.
AI/LLM deep knowledge: Completed the AI_devs course (third edition). My second time taking it. Immediately applied everything to my side projects.
Python: Started learning. Abandoned it.
Controversial take: I don’t need Python.
The TypeScript ecosystem handles everything I do. Web apps. LLM integrations. Backend APIs. I’m more efficient staying in one language.
Python isn’t bad. It’s just not for me.
The Playground Projects
Sometimes you build stuff just to see if you can.
- Claude Code Clone: CLI coding agent with AI SDK and Bun. Wanted to understand how it works under the hood.
- AI Playground: Generative UI experiments. Complex RAG with hybrid search and BM25. Knowledge building.
- Perplexity Clone: Simple search engine. Good learning exercise.
- MCP Server: Connected LLMs to my TickTick task manager. Useful daily.
- Web Scraping Deep Dive: Learned this while building WatchRival. At least the failed project taught me something.
- Blog Rebuild #5: Now in Astro. I rebuild my blog yearly because I like experimenting with UI. No shame.
What I’m Taking Into 2026
Naval Ravikant said:
Learn to sell. Learn to build. If you can do both, you will be unstoppable.
I can build. That part is solved.
Selling is what’s left.
2026 focus:
- Marketing and sales for side projects. No more building in silence.
- LucidCode development and distribution.
- Backend and system design skills at the 9-5.
- Higher-level software thinking. More complex AI-assisted solutions.
The lesson I’d give to anyone a year behind me:
You learn by doing. Not by thinking. Not by reading.
Even if you read something and think you understand it, you don’t. Not really. You have to do the thing. Fail at the thing. Then you learn.
2025 taught me that shipping beats perfection. Revenue beats vanity metrics. And asking “who will buy this” should come before “what should I build.”
Now let’s see what 2026 brings.
Thanks for reading. If you want to follow along with my 2026 journey, find me on X.