Philosophy

The Importance of Owning Your Platform (Why I Built This Site)

Oct 24, 2025
8 min read
E.A
Emmanuel Asika

Why I chose to build a custom Next.js/Supabase site instead of using Medium. A deep dive into platform risk, cloud engineering principles, and digital ownership.

Seriously. I know how to click "Create Account". I know how to set up a Medium profile. I spent years deploying WordPress sites for clients in my sleep. If the goal was just to put words on a screen, building a custom blog with Next.js, Supabase, and Tailwind is the worst possible engineering decision. It is over-engineering at its finest.

But I didn't build this just to write.

I built this because I am tired of renting. And if you are trying to build a career in Cloud Engineering or trying to make it as an Indie Hacker, you should be tired of renting too.

The Digital Landlord Problem

Here is the reality of the modern internet. It is feudalism. You have the lords - Twitter (X), LinkedIn, Medium, YouTube - and you have the serfs. That’s us. We create the content that keeps their platforms alive. In exchange, they give us "distribution".

It works great. Until it doesn't.

I have seen friends build massive audiences on Medium, only for the algorithm to change overnight. Suddenly, their views dropped by 90%. Their income evaporated. Why? Because Medium wanted to push a different type of content. They wanted to optimize their bottom line, not yours.

When you build on someone else's platform, you are building on rented land. The landlord can raise the rent. They can change the locks. They can evict you without notice.

For an Indie Hacker, this is a critical risk. Your audience is your most valuable asset. If that audience is locked inside a walled garden where you don't own the email list and you don't control the database, you don't actually have a business. You have a hobby that someone else allows you to keep.

Why a Cloud Engineer Needs to Build from Scratch

I am pivoting. I spent a long time in the WordPress ecosystem. It put food on the table. It funded my move to Ireland. But I am deep into my Masters in Cloud Computing now. My focus is AWS, Azure, scalable architecture, and serverless systems.

If I claim to be a Cloud Engineer, my personal site cannot just be a generic theme I installed.

It needs to be a demonstration of competence.

When I deploy this site to Vercel, hooked up to a Supabase backend, I am not just blogging. I am managing a CI/CD pipeline. I am handling edge caching. I am optimizing Core Web Vitals. I am dealing with database schemas.

This site is my laboratory.

It allows me to break things. If I want to test a new AWS Lambda function, I can hook it up here. If I want to try out a new AI integration using the OpenAI API, I have the codebase right here. I don't have to fight with a rigid CMS plugin architecture. I just write the code.

The Stack: Next.js and Supabase

Let's get technical. I chose the "T3-ish" stack for a reason. It is the gold standard for modern SaaS for a reason.

Next.js (App Router): React is great, but Next.js brings it to the server. The App Router in Next.js 14 changed the game. We are moving away from heavy client-side JavaScript bundles and back to the server. It is faster. It is better for SEO.

Here is a snippet of how I handle post retrieval. I am not hitting a generic API. I am querying my database directly from a Server Component. This runs on the server, so the client never sees the database logic.

import { createClient } from '@/utils/supabase/server'; export default async function BlogPage() { const supabase = createClient(); const { data: posts } = await supabase .from('posts') .select('*') .eq('status', 'published') .order('created_at', { ascending: false }); if (!posts) { return <p>No posts found.</p>; } return ( <div className="grid gap-8"> {posts.map((post) => ( <PostCard key={post.id} post={post} /> ))} </div> ); }

This is simple, but powerful. Because it is a Server Component, it is fast. The browser receives pre-rendered HTML. No massive loading spinners.

Supabase: I could have used a Markdown file system. But I wanted a real database. Supabase is just Postgres wrapped in a nice developer experience. It gives me authentication out of the box, Row Level Security (RLS), and edge functions.

Why does this matter? Because today this is a blog. Tomorrow it could be a SaaS.

Since I already have the user auth and database set up, if I want to add a "premium" section or a tool for developers, I don't have to migrate platforms. I just add a new table to Postgres. I add a Stripe webhook. Done.

Control Over the User Experience

When you use Substack, your blog looks like Substack. When you use LinkedIn, your article looks like LinkedIn.

By owning the platform, I own the experience. I am using Tailwind CSS and Shadcn/UI here. It gives me granular control over every pixel. I want dark mode to work a specific way? I code it. I want the typography to reflect my engineering mindset? I change the font config.

But more importantly, I control the Conversion Rate Optimization (CRO).

As an Indie Hacker, the goal isn't just traffic. It is conversion. I want you to join my newsletter. I want you to check out my projects.

On Medium, their goal is to keep you reading Medium. They will recommend other people's articles in the sidebar of my post. That is a leak. That is traffic I worked for, leaking out to someone else.

On this site, there are no leaks. The only calls to action are mine. If I want to put a massive newsletter signup form in the middle of this article, I can. If I want to trigger a modal after you scroll 50%, I can.

The Asset Value of Code

There is a concept in finance called "equity". When you write on Twitter, you are building equity for Elon Musk. When you write code for your own platform, you are building equity for yourself.

This codebase is an asset. It is a starter kit.

Because I built this, I now have a template for my next SaaS product. I have the auth flows ready. I have the database connection ready. I have the UI components ready.

When I have an idea for a new app, I don't start from zero. I clone this repo, strip out the blog parts, and I am 40% of the way to an MVP.

Speed is everything in Indie Hacking. By building this site, I sharpened the tools that will allow me to ship my next product in days, not months.

It’s Not About Being "Anti-Platform"

Don't get me wrong. I still use LinkedIn. I still use X. But I treat them as channels, not homes.

I use LinkedIn to find the people. Then I try to bring them here. This site is the destination. It is the headquarters. Everything else is just a satellite office.

The strategy is simple:

  1. Create content here (the Source of Truth).
  2. Repurpose snippets for LinkedIn and X.
  3. Drive traffic back here to capture the email.

This is the funnel. You cannot build a funnel if you don't own the bottom of it.

The Learning Curve (and why you should embrace it)

Is it harder? Yes.

I have to maintain dependencies. I have to fix bugs. I have to worry about mobile responsiveness. Sometimes the deploy fails because of a linting error and I want to throw my laptop out the window.

But that struggle is where the growth happens.

Every time I fix a bug on this site, I become a better engineer. I learn something about caching strategies or database indexing. These are the skills that make you hireable as a Cloud Engineer. These are the skills that make you successful as a founder.

If you are just writing text into a box, you are an author. If you are building the system that delivers the text, you are an engineer.

Future-Proofing Yourself

We are entering an era of AI-generated noise. The internet is about to get flooded with mediocrity. GPT-4 can write a generic blog post in 30 seconds.

In this new world, authenticity and brand are the only moats left.

Having a unique, custom-built corner of the internet signals that you are real. It shows you care about craftsmanship. It differentiates you from the millions of people using default templates.

It also protects you. If AWS shuts down (unlikely, but still), I can take my code and my database backup and move to Azure. Or Google Cloud. Or a Digital Ocean droplet. I am portable. I am sovereign.

Just Ship It

If you are on the fence about building your own site versus using a platform, look at your goals.

If you just want to rant occasionally, use X. If you just want to write essays, Medium is fine.

But if you want to build a career in tech. If you want to build a business. If you want to understand how the web actually works under the hood.

Build the site.

Buy the domain. Spin up a Next.js repo. Connect it to a database. Struggle with the CSS. Break it. Fix it.

It is the best investment you will make in yourself.

I am still tweaking this place. The dark mode flickers sometimes. The font sizes aren't perfect. But it's mine. And that makes all the difference.

#the#IndieHacker

Read Next