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.