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.
-
--livereloadreloads the page after each rebuild. -
--draftsrenders files in_drafts/, which have no date in their filename. -
--futurepublishes 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: