Rebuilding My Data Science Blog

python
quarto
web-design
How I rebuilt my personal site with Quarto, uv, and a terminal-inspired aesthetic for the AI CLI era
Author

Brian Deignan

Published

January 19, 2026

2025 changed how I write code. AI-powered CLIs like Claude Code became my daily driver, and I found myself spending more time in terminals than ever before. So when I decided to rebuild my personal website, I wanted it to reflect that shift—a brutalist, TUI-inspired design that embraces the command line aesthetic.

This post walks through the stack, design choices, and workflow I landed on.

The Stack

  • Quarto — Static site generator that renders Jupyter notebooks natively
  • uv — Fast Python package manager for dependencies
  • GitHub Pages — Free hosting, deploys from docs/ folder
  • Jupyter — Write posts as notebooks with executable code

Design Choices

I went for a brutalist aesthetic—raw, bold, minimal decoration:

  • Sharp corners everywhere — No border-radius, hard edges
  • Hard drop shadows — That “sticker” look from neo-brutalism
  • Monospace headings — IBM Plex Mono for that terminal feel
  • Markdown-style prefixes — Headings show #, ##, ###
  • Dark/light mode — Toggle in the navbar
  • Dithered profile photo — Matches the TUI vibe

Code Runs Here

The best part of Quarto + Jupyter: code cells execute and render inline. Here’s a quick demo:

import pandas as pd

# What's in our pyproject.toml?
import tomllib
with open("../../pyproject.toml", "rb") as f:
    config = tomllib.load(f)

deps = config["project"]["dependencies"]
pd.DataFrame({"dependency": deps})
dependency
0 duckdb>=1.4.3
1 jupyter>=1.1.1
2 matplotlib>=3.10.8
3 numpy>=2.4.1
4 pandas>=2.3.3

Workflow

Writing a post is simple:

# Start Jupyter
uv run jupyter lab _drafts/

# Preview with live reload
uv run quarto preview

# When ready, move to posts/
mv _drafts/my-post.ipynb posts/2026-01-19-my-post/index.ipynb

Need a new package? Just run !uv add package-name in a cell.

If you’re interested in the source code, it’s all on GitHub.