I rebuilt my website from scratch (and left WordPress behind)
Why I ditched WordPress for a fast, hand-built site — the stack, the trade-offs, and how the whole thing now costs me almost nothing to run.
I had a WordPress site once. It had a theme, a database, a login page I’d forgotten the password to, and exactly zero posts. The maintenance tax was real and the writing was not. So I tore it down and started over.
This time I wanted something that matched how I actually think: plain text files, version-controlled, fast, and mine. Here’s what I landed on.
The stack
The whole site is built with Astro — a framework designed for content. Posts are just Markdown files. There’s no database, no server to patch, and the output is plain HTML that loads instantly.
A post’s metadata lives in a little block at the top of the file, called frontmatter:
---title: "Something I needed to say"description: "A one-line hook for search engines and link previews."pubDate: 2026-06-22topic: lifetags: ["notes", "first"]---Everything below that block is the post. The site reads the frontmatter to build listings, topic pages, tags, and the RSS feed automatically.
A taste of the code
The piece that makes this feel effortless is Astro’s content layer. Defining the shape of a post — and getting type-safety for free — takes a few lines:
const posts = defineCollection({ loader: glob({ base: './src/content/posts', pattern: '**/*.{md,mdx}' }), schema: ({ image }) => z.object({ title: z.string(), description: z.string(), pubDate: z.coerce.date(), topic: z.enum(['tech', 'india', 'faith', 'family', 'life']), tags: z.array(z.string()).default([]), }),});If I typo a topic or forget a description, the build fails before anything ships. The computer catches my mistakes so readers never do.
The trade-off, honestly
WordPress lets you write from any browser, including your phone. A hand-built site doesn’t — by default. That’s the one thing I gave up, and I’m closing the gap with a small browser-based editor so I can still jot a post from anywhere.
For everything else — speed, ownership, simplicity, the fact that I’ll never again hunt for a forgotten admin password — it’s not close. This is the site I should have built years ago.