loftusa.github.io

loftusa.github.io

Personal website for Alex Loftus. Jekyll (Minimal Mistakes theme) on GitHub Pages + FastAPI chat API on Fly.io.

Build & Serve

bundle exec jekyll serve                    # Local dev server (localhost:4000)
bundle exec jekyll serve --config _config.yml,_config.dev.yml  # With dev overrides
bundle exec jekyll build                    # Static build → _site/

Chat API (experiments/)

  • experiments/chat_api.py — FastAPI app, Cerebras zai-glm-4.7 model, ChromaDB RAG
  • Fly.io app: llm-resume-restless-thunder-9259
  • Deploy: cd experiments && fly deploy
  • Endpoints: POST /chat (streaming), POST /reset, GET /logs/download
  • $2 USD cost cap per conversation

Key Structure

_config.yml / _config.dev.yml   Jekyll config (prod / dev overrides)
_data/navigation.yml            Nav menu
_pages/                         Site pages (about.md = homepage)
_posts/                         Blog posts (YYYY-MM-DD-title.md)
_drafts/                        Unpublished posts
assets/js/chat.js               Chat frontend
experiments/                    Chat API, RAG, evals
red-teaming/                    Mangrove experiment (has own CLAUDE.md)

Blog Posts

  • Format: _posts/YYYY-MM-DD-title.md
  • MathJax: add mathjax: true to front matter
  • Markdown: kramdown with GFM, rouge syntax highlighting

Config

  • _config.yml — production (url: https://alex-loftus.com)
  • _config.dev.yml — local overrides (url: localhost:4000, analytics off)
  • _data/navigation.yml — top nav links

Package Management

  • Ruby/Jekyll: bundle install / bundle exec
  • Python: uv (use uv run <script>.py)
  • JS: npm