Matt Novak logo Matt Novak

Blog

All Posts

pytracking-go: a tiny, stateless open/click/unsubscribe tracker in Go

2025-09-30 • 4 min

A Go implementation of pytracking patterns: stateless tracking links with AES encryption, SQLite logging, and simple integration for email tracking.

go email tracking open click unsubscribe

Chasing Quiet Power: My Next Gentoo Box (DB4 minimalism vs System76 muscle vs mini-PC magic)… and the Threadripper I daydream about

2025-09-25 • 11 min

Thinking through my next Gentoo build: Streacom DB4 minimalism vs System76 muscle vs mini-PC magic. Fast compiles, silent operation, and local AI.

gentoo linux build hardware ai pc

Why I'll Always Be a Neovim Person (and Probably Never an IDE Guy)

2025-09-15 • 5 min

My thoughts on why Neovim fits my workflow better than big IDEs: terminal-first, composable tools, and a workflow that scales with projects.

neovim vim terminal workflow editor gentoo

Blanket Cat: Notes From the Engine Room

2025-09-10 • 6 min

Building Blanket Cat: a system for repeatable, observable experiments on Reddit at scale. Architecture, scheduling, personas, and observability.

blanketcat reddit experimentation go nats microservices

KumoMTA: Why I'm Enjoying It More Than PMTA (and the automation I'm building next)

2025-09-05 • 6 min

Why I prefer KumoMTA over PMTA for my email infrastructure: modern, code-first approach, better observability, and automation-friendly design.

kumomta pmta email mta automation devops

Warmcraft: a Pragmatic, Closed-Box Email Warmup Engine (Tech Notes)

2025-08-30 • 5 min

Mail-in-a-Box at Scale: Why I Love It, Why SQLite Hurt, and How I Moved Everything to MariaDB (Plus a Faster Go API)

2025-08-20 • 6 min

async_sync: make sync + async play nice in Rust

2025-08-15 • 4 min

async_sync is a tiny crate that makes boundaries between synchronous and asynchronous Rust code painless, with retries, timeouts, parallel execution and diagnostics.

rust async crate tokio concurrency

Chasing the Perfect Case (and Why the Streacom DB4 Still Owns My Heart)

2025-08-10 • 5 min

Exploring different PC cases from Thor Nanoq R to NCASE M3, but ultimately why the Streacom DB4 remains my favorite for its silent, minimalist design.

pc cases hardware streacom build silence

Why I'm Moving from GitLab to Forgejo (and Not Looking Back)

2025-08-05 • 5 min

Moving from GitLab to Forgejo for a leaner, faster, and more operationally simple forge that better fits my needs.

gitlab forgejo gitea self-hosting devops ci/cd

Poisson Scheduling in Python: Smooth, jittery job timing without cron drama

2025-07-25 • 4 min

Build a tiny Poisson scheduler in pure Python that spreads tasks smoothly, respects rate limits, and keeps things evenly spread across the day—no cron needed.

python scheduling asyncio backend systems

Catppuccin + Sway/i3 + Ghostty: dark, quiet, perfect

2025-07-20 • 2 min

My dark, minimal desktop setup with Catppuccin theme, Sway/i3 tiling window manager, and Ghostty terminal for a focused, distraction-free workflow.

linux desktop catppuccin sway i3 terminal