Building My Personal Home on the Internet
This is my personal home on the internet: a durable place for my work, writing, and ideas.
I built it as a learning project and as an example of the kind of software I value — fast, simple, content-first, and intentionally maintained.
The site is statically generated with Astro. Writing lives in Markdown and is validated through Astro Content Collections. Bun handles the project tooling, and Cloudflare Pages deploys the generated site from GitHub.
A big part of the goal is keeping the site lightweight.
There is no tracking, no analytics script following people around, and very little JavaScript shipped to the browser unless a page genuinely needs it. I am also trying to keep the dependency surface small and avoid adding libraries simply because they are convenient.
Most of the site is just HTML and CSS generated ahead of time.
I like that.
There is also something oddly satisfying about publishing this way.
A new piece of writing starts as a Markdown file. I commit it to Git, push it, and a little while later it is part of the website. No CMS, no publishing dashboard, no database of posts somewhere behind an interface.
I’m in control of both the content and the machinery that turns it into the website you’re reading.
There are certainly easier ways to publish words on the internet. But there is something nice about being able to trace the entire path from a sentence in a text file to the page you are reading right now.
It feels like mine in a way that clicking Publish somewhere else never quite did.
The project is also an experiment in learning by building: understanding the framework, the web platform, deployment, and the decisions behind each layer rather than hiding those decisions behind abstractions.
I’m not trying to avoid tools that make building easier. I’m trying not to outsource the part that makes building interesting.
There is a difference, at least for me, between getting something to work and understanding why it works. Part of the reason I built this site was to stay close to that second feeling.
I also plan to build a small collection of Swift CLI tools alongside the site. These tools will automate repetitive tasks such as creating posts, checking metadata, finding broken links, and generating useful project statistics.
They are intentionally part of the learning process: practical tools that make my life easier while helping me learn Swift.