Code
Outside of work I build self-hosted tools, personal websites, and whatever else catches my interest. Side projects are where I experiment with new technology and stay sharp since at work I stick to stable, mature frameworks. There is plenty more to see on my GitHub account.
Live
011Eleven sites, one repo, one desktop at home. Every one of these is answering requests right now.
chat
A conversation with a small model running on the card in my desktop, with tools for whatever it cannot know and an incognito mode that writes nothing down.
{
"sha": "ff1b359",
"message": "Remove the deep_search tool",
"date": "2026-09-08T23:42:58Z",
"author": "Isaac Bythewood"
}
llm
One set of weights on one card in front of every service here that wants one, with a key per caller and every prompt and completion written down.
{
"sha": "f0584ba",
"message": "Stop logging incognito turns",
"date": "2026-09-07T17:15:05Z",
"author": "Isaac Bythewood"
}
search
Ask it a question and it searches the web, reads the pages it finds, and writes an answer whose every sentence is checked against the passage it cites.
{
"sha": "f0584ba",
"message": "Stop logging incognito turns",
"date": "2026-09-07T17:15:05Z",
"author": "Isaac Bythewood"
}
auth
The front door to the rest of these. One account, a six digit code pushed to my phone over ntfy, and a session the other sites check against this one.
{
"sha": "43b8862",
"message": "Add chat and llm to dash and auth",
"date": "2026-09-07T02:13:40Z",
"author": "Isaac Bythewood"
}
dash
One page of markets, news, the weather, and the health of everything else here, all of it pushing itself over server sent events.
{
"sha": "1b3112f",
"message": "Fix outlook numbers vanishing on update",
"date": "2026-09-08T23:02:32Z",
"author": "Isaac Bythewood"
}
repos
A git remote I push to over HTTPS, with a browser on top: commits, diffs, blobs and atom feeds. It mirrors my GitHub account too.
{
"sha": "dfb1f27",
"message": "Add tree and file endpoints to repos API",
"date": "2026-09-08T23:22:28Z",
"author": "Isaac Bythewood"
}
logging
Every site here ships its structured logs to this one, so a request I want to find is in one place instead of eleven docker logs.
{
"sha": "8037f36",
"message": "Return the reason an error happened, grouped by kind",
"date": "2026-09-07T14:02:48Z",
"author": "Isaac Bythewood"
}
status
Uptime monitoring and public status pages, with Lighthouse audits and an SEO crawler on a timer and PDF reports out the other end.
{
"sha": "f64c6c3",
"message": "Add read only api for chat tools",
"date": "2026-09-07T02:13:40Z",
"author": "Isaac Bythewood"
}
analytics
Self-hosted website analytics: a collector, dashboards you can share without a login, a world map, and Typst PDF reports.
{
"sha": "f64c6c3",
"message": "Add read only api for chat tools",
"date": "2026-09-07T02:13:40Z",
"author": "Isaac Bythewood"
}
blog
Markdown files on disk and no database behind them, with live search, and a PDF and a social card built for every post.
{
"sha": "dec67b8",
"message": "Fix redirect loop on the login stubs",
"date": "2026-09-01T03:05:05Z",
"author": "Isaac Bythewood"
}
Active
002orchard
Every site I run, in one repo, along with the shared Cloudflare Tunnel and Caddy that front them. It all runs from a desktop at home, this site included.
{
"sha": "ff1b359",
"message": "Remove the deep_search tool",
"date": "2026-09-08T23:42:58Z",
"author": "Isaac Bythewood"
}
GitHub
taproot
The dotfiles and containers I use to set up a machine for development, one to write code in and one that runs a local coding model.
{
"sha": "0b3b128",
"message": "Try the llm gateway before a local model",
"date": "2026-09-07T02:13:49Z",
"author": "Isaac Bythewood"
}
GitHub
Archived
021Read-only snapshots. Some of these still run, rebuilt in a language they did not start in, and some are switched off for good.
isaacbythewood.com-nextjs
The Next.js build of this site: a custom cursor, a page transition loader, and full canvas background animations. Replaced by the Go rebuild you are reading now.
GitHubblog.bythewood.me-rust
Single binary markdown blog: no database, live search, Typst PDF export, and great SEO.
GitHubblog.bythewood.me-flask
The Flask rewrite of my blog: markdown files on disk, no database, and no CMS behind it. Replaced by the Rust build above.
GitHubblog.bythewood.me-wagtail
The Django and Wagtail build of my blog, with a real CMS behind it. The last handcoded version, and where the blog spent most of its life.
GitHubdarkfurrow.com-rust
A living almanac of seasons, soil, and the quiet knowledge that used to be common. Taken offline, and I no longer own the domain.
GitHubstatus-django
The Django build of my uptime monitor and status page builder, before it was rewritten in Rust.
GitHubanalytics-django
The Django build of my self-hosted website analytics, before it was rewritten in Rust.
GitHubstatus-rust
Single binary uptime monitoring and status pages: HTTP probes, Lighthouse audits, an SEO crawler, and PDF reports.
GitHubanalytics-rust
Single binary website analytics: a collector API, dashboards, a world map, and PDF reports.
GitHubtimelite-nextjs
Time tracking that never leaves your browser. No accounts, no sync, no server side state.
GitHubrepos-rust
A minimal self-hosted git browser. Bare repos as a website: commits, diffs, syntax highlighted blobs, atom feeds, and clone over HTTPS.
GitHubfinance-rust
A self-hosted market watcher for stocks, ETFs, indexes and futures, with live charts, key stats, fundamentals and SEC filings.
GitHubdockerfiles
All the Dockerfiles I used for various purposes, each with its usage notes at the top.
GitHubtimestrap-django
Time tracking you can host anywhere, with full export in several formats and an extensible core.
GitHubalpinefiles
The files I ran on my Alpine Linux servers: Caddy, Docker, borg backups, and ufw.
GitHubai-art
Art generation with VQGAN and CLIP in docker containers. A simplified, updated and expanded take on the original notebooks.
GitHub