# Hello, World
On starting a blog, the tools behind it, and what I hope to write about.
## Why Another Blog?
The internet doesn’t need another blog. I know that. But I need one.
Writing has always been how I figure out what I think. 1. Joan Didion said “I write entirely to find out what I’m thinking.” I didn’t read that until after I’d already arrived at the same conclusion independently, which I suppose proves the point.
So this blog exists mostly for me.
## What This Is Built With
I built this site with [Astro](https://astro.build/) and MDX, running on a Raspberry Pi in my apartment. 2. The whole setup — a Raspberry Pi 4, a case, a power supply — cost less than a year of most hosting services. And it’s mine.
The stack is intentionally simple:
- **Astro** for static site generation — zero JavaScript shipped by default
- **MDX** for content — Markdown with components mixed in
- **Plain CSS** for styling, no frameworks
- TypeScript throughout, because I like my mistakes caught early
No database, no CMS, no analytics. Just files on disk, compiled to static HTML.
### On Simplicity
I’ve spent enough time in my career dealing with over-engineered systems to know that simplicity is not the starting point — it’s the destination. 3. There’s a version of this site that had a database, an admin panel, and a comment system. I deleted all of it. The current version is the third rewrite.
>“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” — Antoine de Saint-Exupery
## What I Plan to Write About
I don’t want to constrain this too much, but broadly:
- **Software engineering** — not tutorials, but reflections on the practice
- **Writing** — the craft itself, and how it connects to thinking
- **Systems** — how things work, from distributed systems to organizations
- **Whatever else** — sometimes you just want to write about a book you read
The common thread is that I want to write things I’d want to read. Posts that take an idea seriously, spend some time with it, and leave the reader with something to think about.
## A Note on the Design
You’ll notice this site looks a bit like a `typeset document`. That’s intentional. I wanted the reading experience to feel like a well-formatted paper — clean typography, comfortable line lengths, sidenotes instead of footnotes when possible.
The body text is set in Source Serif 4 at a size that doesn’t make you squint. 4. The font pairing is Source Serif 4 for body text and IBM Plex Mono for code and the visible markdown syntax. Both are open-source typefaces. Code blocks use a monospace font with syntax highlighting:
def greet(name: str) -> str:
"""A simple greeting function."""
return f"Hello, {name}. Welcome."
if __name__ == "__main__":
print(greet("world"))
Headings are clear. Paragraphs have breathing room. Links are visible but not distracting. The goal is to get out of the way and let the writing speak.
## What Comes Next
I have a few posts in various stages of completion. 5. At the time of writing, there are about six drafts in various states of disrepair. Some will make it. Others will be quietly composted. Some are close to done, others are just a title and a few scattered paragraphs. I’ll publish them as they’re ready, which might mean several in a week or none for a month.
If you want to follow along, there’s no newsletter or RSS feed yet — but there might be eventually. For now, just bookmark the page and check back when you think of it.
Thanks for reading. More soon.