Thomas Anderson

Building This Site with Jekyll

Static sites, GitHub Pages, and the pleasure of owning your own corner of the web.

Terminal window showing Jekyll build output

There’s a certain pleasure in building a website from scratch. Not in a look at my stack way, but in the way that building anything with your own hands produces a different relationship to the result. You understand it. You can fix it. You don’t depend on a platform that might change its terms, or get acquired, or simply decide your content doesn’t fit.

I built this site with Jekyll. Here’s why, and how.

Why Jekyll

I went with Jekyll because it’s what GitHub Pages uses natively, it’s been around since 2008 with excellent documentation, and it’s simple enough that I can hold the whole thing in my head. Writing a post is just creating a Markdown file. No CMS login, no editor toolbar. I write in whatever editor I’m using and push.

The Structure

_posts/          # Your content, named YYYY-MM-DD-title.md
_layouts/        # HTML templates
_includes/       # Reusable partials
_sass/           # SCSS partials
assets/          # CSS output, JS, images
_config.yml      # Site configuration

Deployment

GitHub Actions handles the build and deploy. Push to main, the workflow runs bundle exec jekyll build, and the _site/ output gets deployed to GitHub Pages. The whole workflow file is about 40 lines.

The site is fast because it’s static — no database, no server-side rendering. And it’s mine: the files are in a Git repository.