Owning the Stack: I Left Substack to Build JoeDoesTech on My Own Terms

Why I traded discovery for ownership, and rebuilt the whole thing on Payload

JG

Joe Guster

April 24, 2026 · 5 min read

Joe Does Tech - I Left Substack to Own My Work

If you're reading this on joegus.tech, you're reading it on something I built. That wasn't true a few weeks ago.

Until recently, JoeDoesTech lived on Substack. It was the easy choice when I started. Write, publish, done. But as the publication grew and Genesis 37 Labs came into clearer focus, the friction started to show. I didn't want to rent my platform anymore. I wanted to own it.

So I rebuilt it.

The Trade I Actually Made

Let me be honest about what I gave up, because this post would be dishonest without it.

Substack has a real discovery engine. Beehiiv has one too. When you publish on those platforms, your work is visible to readers who aren't already looking for you. Recommendations, notes, the internal network. That's genuine value, and I'm not pretending otherwise.

But I'm not trying to monetize content subscriptions. My business is Genesis 37 Labs. The writing exists to sharpen my thinking, document how I work, and give founders a real sense of what it's like to build with me. The discovery boost on Substack was nice, but it was pointed at the wrong outcome. Paid newsletter subscribers was never the goal.

What I actually needed was full control of the surface where my work lives. The typography, the layout, the way posts connect to each other, the way they connect to Genesis 37 Labs. None of that was mine on Substack. It was close enough. It was never right.

So I made the trade. Less built-in discovery, complete ownership. For where this brand is going, that's the correct direction.

Why Payload

I looked at the usual options. WordPress is the default for a reason. Beehiiv keeps coming up. There's a long list of hosted and self-hosted CMS platforms that would have gotten me a blog live in an afternoon.

I picked Payload CMS.

A few reasons mattered. Payload is TypeScript-native and plays directly with Next.js, which is already my default for anything I'm building seriously. The admin UI is clean without being opinionated in ways I'd have to fight. The data model is code-defined, which means my content structure lives in version control instead of a database I can only reach through a settings panel.

The stack ended up looking like this: Payload CMS and Next.js on a DigitalOcean droplet, Postgres as the database, DigitalOcean Spaces for media, Caddy handling reverse proxy and TLS. Same foundation I'm already running Postiz and n8n on. One less pattern to maintain.

None of those choices are exotic. That was the point. I wanted a stack I could still recognize two years from now.

The Real Reason, Though

Here's what I haven't said yet, and it's the part that actually drove the decision.

Every project I take on is a chance to build something I could run again.

Not as a product line. Not as a side business. As a practitioner pattern. The Postiz and n8n stack wasn't just for me, it's the automation backbone I can stand up for any client who needs it. The Linear workspace structure I built for Genesis 37 Labs isn't just for Genesis 37 Labs, it's a template I can hand a founder on day one of an engagement. Every piece of infrastructure I build for myself is also a reference implementation I can use for someone else.

That changes what "my blog" means. It's not just a blog. It's a working example of a self-hosted, owned, modern content platform that a founder or consultant or small team could stand up for themselves without handing their audience and their work to a platform they don't control.

I didn't build joegus.tech to eventually sell it. I built it because building repeatable systems is how I actually work. If a client asks me tomorrow for a content platform they fully own, I'm not starting from a Notion doc and a hope. I'm starting from something that's been running in production, handling my own work, for months.

Bespoke used to mean expensive. Now it means repeatable. That's the shift I keep coming back to, and it's exactly what the last few posts have been circling.

What the Migration Actually Looked Like

The move itself was less dramatic than I expected, which is usually a sign the structural decisions were right.

I defined the content collections in Payload first. Posts, tags, authors, media. Exported everything from Substack. Cleaned up the markdown. Uploaded the media to Spaces. Imported into Payload. Pointed the domain. Verified the feeds and redirects. Published.

The parts that took real time weren't the technical parts. They were the editorial ones. Going back through every post, making sure the formatting held up, making sure the images were properly attributed, making sure the metadata was right for how I want this archive to read two years from now when someone finds it for the first time.

The stack is the easy part. The intentionality is the work.

What's Next

Next week I'm going to walk through the I Am Black Business replatform, which is a much bigger version of this same question. IABB has been around for years, and rebuilding it meant reckoning with everything it had accumulated and everything I wanted it to become. Different scale, same instinct: own the thing that carries your work.

If you've been following this series, you're seeing the throughline. Real projects, real decisions, real outcomes. The framework isn't theoretical. It's running in production, on domains I control, in code I can read.


If you're a founder sitting on a content platform you don't own, or a product that's been held together with hosted tools that almost fit, that's exactly the kind of problem Genesis 37 Labs is built to solve. Owning your stack isn't about being technical. It's about being intentional. Happy to talk through what that could look like for you.

Practitioner Circle

Join the Practitioner Circle

Get a weekly deep dive into UI architecture and practitioner workflows. No fluff, just craft.

More from JoeDoesTech

View Archive