Indie Hacking

Why I Bet My Career on Building My Own Software

Dec 17, 2025
8 min read
E.A
Emmanuel Asika

I traded client invoices for code commits. Here is why pivoting from high-volume freelancing to building my own SaaS on Next.js is the only bet that makes sense.

The Trap of Selling Hours

I’ve spent years in the trenches of the gig economy. If you check my history, you’ll see I didn't just dabble in freelancing. I optimized it. I turned WordPress development into a high-speed assembly line. I could look at a design and have a pixel-perfect Elementor or custom PHP theme ready before the client finished their morning coffee.

The money was good. Actually, the money was great. But the math was broken.

Every time I stopped typing, the income stopped. I wasn't building equity. I wasn't building an asset. I was renting out my brain by the hour to build someone else's dream. There is a specific kind of exhaustion that comes from high-volume client work. It’s not just the coding. It’s the context switching. The revision rounds. The "quick fix" that takes four hours because the client installed 15 conflicting plugins.

I looked at where I wanted to be in ten years. Did I want to be the guy churning out site #500 for a local bakery? No.

I wanted leverage. And in this industry, software is the ultimate leverage.

The Technical Pivot: Why I Ditched the LAMP Stack

Moving from WordPress to a modern SaaS stack wasn't just about following hype. It was an engineering necessity. WordPress is fantastic for content sites. It powers 40% of the web for a reason. But when you want to build applications - systems that handle complex state, real-time data, and scalable logic - the LAMP stack starts to feel heavy.

I’m currently deep in my Masters in Cloud Computing here in Ireland. This academic path isn't just for a diploma. It’s a forcing function to understand what happens under the hood of the applications I build.

I shifted my daily driver stack to Next.js, TypeScript, Tailwind, and Supabase. Here is why.

Type Safety is Sanity

In PHP, you often guess what's in the array. In TypeScript, you know. When you are building a SaaS solo, you don't have a QA team. You are the QA team. TypeScript catches the bugs before I even hit save.

And combined with the Shadcn UI library, I can move fast. I'm not fighting CSS specificity wars anymore. I'm composing interfaces.

The Backend-as-a-Service Revolution

I used to spend days configuring VPS instances, setting up MySQL databases, and worrying about security patches. Now? I use Supabase. It gives me a Postgres database, Authentication, and Edge Functions out of the box.

Look at how simple it is to secure user data now. Instead of writing complex middleware, I just define Row Level Security (RLS) policies right in the database.

-- Only allow users to see their own data create policy "Users can view own data" on public.profiles for select using ( auth.uid() = id );

This is powerful. It moves security from the application layer down to the data layer. It means I can sleep at night knowing that even if my API logic has a flaw, the database won't leak data.

Cloud Engineering: The Big Picture

While I build my indie projects, I'm simultaneously studying Cloud Engineering at a master's level. Some people think these are conflicting paths. They think Cloud is for enterprise and Indie Hacking is for "scrappy" code.

They are wrong.

Understanding Cloud Architecture is the biggest cheat code an Indie Hacker can have. Why? Because of scalability and cost.

If you don't understand how AWS or Azure bills you, you are going to get wrecked when you get traction. My studies in Ireland have forced me to look at software not just as code, but as infrastructure.

For example, I'm not just deploying a monolithic Node.js app anymore. I'm looking at serverless architectures. I'm looking at AWS Lambda or Azure Functions. Why pay for a server 24/7 if my SaaS only processes data when a user clicks a button?

Here is a snippet of how I define infrastructure as code now. This is Terraform. It allows me to spin up my entire environment with a single command. It’s repeatable. It’s professional.

resource "aws_lambda_function" "my_saas_backend" { filename = "lambda_function_payload.zip" function_name = "process_user_data" role = aws_iam_role.iam_for_lambda.arn handler = "index.handler" runtime = "nodejs18.x" environment { variables = { DATABASE_URL = var.database_url } } }

This connects the dots. My academic work informs my indie hacking, and my indie hacking gives me practical context for my academic theories. It is a feedback loop.

The AI Multiplier

We need to talk about AI. It’s the elephant in the room and the reason this bet on building software is safer than it looks.

Three years ago, building a complex SaaS solo was a suicide mission. You needed a frontend guy, a backend guy, a DevOps guy, and a designer. Today? I am all of those people.

But not because I'm a genius. But because I have Copilot and ChatGPT.

AI hasn't replaced engineers. It has replaced junior engineers. It handles the boilerplate. It writes the regex. It generates the SQL migrations. This frees me up to focus on the Business Logic and the User Experience.

I can spin up a Next.js API route that integrates with OpenAI in minutes. The barrier to entry has collapsed. But that means the barrier to success has shifted. It’s no longer about who can write the code. It’s about who can solve the problem.

The Psychology of Ownership

This pivot is largely psychological.

When you freelance, you are constantly asking for permission. "Do you like this header?" "Can I increase the budget?"

When you build your own software, you don't ask. You ship.

The market is the only boss. If I ship a feature and nobody uses it, the market fires me from that feature. I iterate. I fix it. I deploy again. The feedback loop is instant and brutal, but it is honest.

I am betting my career on this because I want to own the upside. If I build a SaaS that saves people 10 hours a week, and 1,000 people pay me $20 a month for it, that is an asset that works while I am sleeping. It works while I am in class. It works while I am walking around Dublin.

And sure, the risk is higher. I don't get a guaranteed paycheck at the end of the month from a client. I have to hunt for users. I have to do marketing (which I am still learning). But the risk profile is asymmetric.

  • Freelancing: Capped upside (hours in a day), capped downside (you lose a client).
  • SaaS: Unlimited upside (scale), limited downside (time lost).

The Reality of "Shipping Fast"

I talk a lot about shipping fast. But let's define that. It doesn't mean writing sloppy code.

It means choosing the tools that remove friction.

That is why I use Shadcn UI. It’s a collection of re-usable components that I can copy and paste into my apps. It’s not a component library I have to fight against. It gives me accessible, beautiful components that I can customize via Tailwind.

Here is how easy it is to add a button that looks enterprise-grade immediately:

import { Button } from "@/components/ui/button" export default function CTA() { return ( <Button variant="default" size="lg" className="bg-blue-600 hover:bg-blue-700"> Start Your Trial </Button> ) }

No wrestling with borders. No figuring out focus states. It just works. This allows me to focus on the logic.

Why Now?

The timing matters.

We are in a weird economic spot. Tech layoffs are happening everywhere. The "safe" job at the big tech company isn't as safe as it used to be. Reliance on a single employer is a risk factor I am not comfortable with anymore.

By building my own portfolio of small bets - micro-SaaS apps, tools, plugins - I am diversifying my income streams. I am diversifying my risk.

And being in Ireland right now, surrounded by the European tech scene, the energy is different. People are building. The barrier to global distribution is zero. I can deploy to Vercel and have users in Japan five minutes later.

The Roadmap Ahead

I’m not abandoning my roots. My experience with WordPress taught me empathy for the user. It taught me that non-technical people just want things to work. I’m taking that empathy and applying it to Cloud Engineering.

My goal is simple: Build systems that are robust enough to scale but simple enough to maintain solo.

I’m going to keep sharing this journey. The code, the wins, the failures, and the revenue numbers. I’m done with the black box of agency life. I’m building in public because transparency creates trust, and trust builds users.

If you are a developer sitting on the fence, wondering if you should start that side project or learn that new framework... do it. The cost of inaction is the only cost you can't afford.

We have the tools. We have the AI. We have the cloud.

There are no excuses left.

See you in the commit logs.

#why#IndieHacker

Read Next