Skip to content
Go back

The Decisions Behind Building My Personal Website

The Decisions Behind Building My Personal Website

How I built a complete personal website in two days using multiple AI agents, and how the real work was deciding what not to build.


Why This Post Exists

I already wrote about why I built this website.

This post is about the how.

Not a technical tutorial. Not a framework comparison.

This is about the decisions and constraints that took me from “I should do this someday” to a live website in two days.

Think of this as a decision framework you could hand to any capable AI and say:

build me something like this, given these constraints.


My Starting Context

Before touching any tech, I had to be honest about my constraints.

That last point mattered more than any technical choice.


The Foundational Decisions

Own Domain vs Platform

The choice: Own domain vs Medium, Substack, or LinkedIn.

Why owning the domain won:

The trade-off: I gave up built-in discovery in exchange for ownership and flexibility.

That was a conscious choice.


Static vs Dynamic Architecture

The choice: Static site vs full-stack application.

Why static won:

The important part wasn’t just choosing static. It was choosing an ecosystem where dynamic features could be added later without rewriting everything.


Hosting Strategy

The choice: Cloudflare Pages vs Netlify, Vercel, or traditional hosting.

Why Cloudflare won:

For the first few months, the only real cost is the domain itself.


Tech Stack Choices

Framework Selection

The choice: Astro vs Next.js vs Hugo.

Why Astro won:

I wanted the tooling to disappear so the writing could stay front and center.


Content Management Strategy

The choice: Notion as a CMS vs Git-only workflow or traditional CMS.

Why Notion won:

The workflow:

  1. Write in Notion
  2. Mark post as “Published”
  3. Site rebuilds automatically
  4. Post goes live a few minutes later

Not real-time publishing, but perfectly fine for a monthly cadence.


Design Approach

I wanted the site to feel calm.

Whitespace, minimal color, typography doing most of the work.

Nothing shouting for attention. Nothing competing with the text.

I started with a feature-rich Astro theme and removed things until it felt quiet enough. Most of my time on Day 1 wasn’t spent coding. It was spent deciding what didn’t need to exist.


Automation and Publishing

The goal: Write once. Publish with zero friction.

Changing a post’s status in Notion triggers a rebuild on Cloudflare Pages. No manual deploys. No extra steps.

This matters less for technical elegance and more for psychology.

The fewer steps between writing and publishing, the more likely consistency becomes.


URLs, Structure, and SEO

One unexpectedly tricky problem was URLs.

Notion pages come with messy internal IDs. I wanted clean, readable URLs for posts. The solution was to generate slugs from post titles during the build process and let Astro handle consistency across rebuilds.

My SEO approach was intentionally conservative:

This works well for both traditional search and AI-driven discovery.


Analytics

I set up basic analytics to understand what content resonates.

Nothing fancy. Enough data to learn, not enough to feel invasive.

This is a personal site, not a growth dashboard.


The Multi-Agent Workflow

I initially tried to plan everything perfectly. Every feature. Every edge case.

That went nowhere.

Progress started when I broke the work into small steps and let different AI tools handle different kinds of thinking:

The real unlock wasn’t that AI is powerful.

It was that I stopped trying to coordinate everything myself.


The Two-Day Timeline

Day 1 (~6 hours)

Structure, framework choice, design decisions, core content, first deployment.

Day 2 (~2 hours)

Automation, domain setup, analytics, cleanup.

Total time: ~8 hours from nothing to live.


A Small but Important Fun Fact

This entire post, from ideation to drafting to publishing, was done entirely on my phone.

No laptop. No local development environment.

Just thinking, writing, editing, and shipping.

That constraint forced simplicity.

And simplicity shipped.


The Lesson That Matters

Start smaller than your ego wants.

Ship before you feel ready.

Let the first version be incomplete, slightly awkward, and real.

Most personal websites don’t fail because of bad technology.

They fail because they never leave the planning phase.

Build something simple. Make it live.

Then let it earn complexity over time.


Built in two days. Maintained in minutes.

That was the goal.


Share this post on:

Next Post
Why I Built This Blog