Personal tech blog by Brooks Cunningham, covering CDN, security, networking, and web infrastructure topics. Built with Jekyll and hosted on GitHub Pages.
Live site: https://www.brookscunningham.com
All site files live under the docs/ directory.
- Ruby (version compatible with the
github-pagesgem) - Bundler (
gem install bundler)
cd docs
bundle install
bundle exec jekyll serveThe site will be available at http://localhost:4000/.
cd docs
bundle exec jekyll buildStatic output is written to docs/_site/.
docs/
├── _config.yml # Jekyll configuration (theme, permalinks, markdown engine)
├── _includes/
│ └── head.html # Overrides Minima's <head> — adds GTM & AdSense scripts
├── _layouts/
│ └── default.html # Overrides Minima's base layout — adds GTM noscript & AdSense footer ad
├── _posts/ # Blog posts as Markdown files (YYYY-MM-DD-kebab-title.md)
├── assets/
│ └── images/ # Post images, organised by article slug
├── about.md # About page (layout: page)
├── index.md # Home page (layout: home)
├── Gemfile # Single dependency: github-pages meta-gem
└── favicon.ico
- Create a file in
docs/_posts/namedYYYY-MM-DD-kebab-case-title.md. - Add the required front matter:
--- layout: post title: "Your Post Title" date: YYYY-MM-DD HH:MM:SS -0600 ---
- Place any images in
docs/assets/images/<article-slug>/and reference them with the{{ site.baseurl }}prefix:
Push to the main branch. GitHub Pages automatically builds and publishes from the docs/ directory.
See LICENSE.