Running this site locally

Notes for future me: how to get from a bare clone to a live local preview of this site, and how to add a new post.

The stack

The site is Jekyll on top of the al-folio v1.x theme. Layouts and plugins mostly come from gems, so the repository itself stays small: it holds content (_pages, _news, _posts), configuration (_config.yml), and a handful of local overrides such as the blog archive.

The build targets Ruby 3.3 with Bundler. macOS ships an older system Ruby, so install a supported one first:

brew install ruby@3.3
export PATH="/opt/homebrew/opt/ruby@3.3/bin:$PATH"

Install dependencies

Gems are vendored into the project so the rest of the system stays untouched:

bundle config set --local path 'vendor/bundle'
bundle install

Gem downloads were the slow part on my connection, so the project config also points Bundler at a nearby mirror:

bundle config set --local mirror.https://rubygems.org \
  https://mirrors.tuna.tsinghua.edu.cn/rubygems

Serve

bundle exec jekyll serve --livereload --drafts --future

That serves the site at http://127.0.0.1:4000 and rebuilds on save, so the browser reflects edits within a second or two.

  • --livereload reloads the page after each rebuild.
  • --drafts renders files in _drafts/, which have no date in their filename.
  • --future publishes posts dated later than today.

Writing a post

Posts live in _posts/ and are named YYYY-MM-DD-title.md. The front matter the archive reads is:

---
layout: post
title: "Post title"
date: 2026-10-02
description: One sentence shown in the archive listing.
categories: [ml-systems]
tags: [inference, kernels]
---

The archive on the blog page groups posts by year and builds its topic filters from categories and tags, so those fields are worth filling in.




Enjoy Reading This Article?

Here are some more articles you might like to read next: