Code
A probably not entirely up-to-date list of my current side projects... There is plenty more to see on my GitHub account and generally around the internet if you are interested.
Analytics
A self-hostable analytics service with a straightforward API to track events from any source.
{
"sha": "c314136d640eb01ac0994748380edcfd9be811c8",
"commit": {
"message": "Fix map popup font cascade and suppress no-data popups\n\nBootstrap's body font stack includes colour emoji fonts\n(\"Google Noto Color Emoji\", \"Segoe UI Emoji\") which bleed into the\n.datamaps-hoverover wrapper and cause glyph-level colour rendering on\nthe state name. Fix by pinning font-family, font-style, and font-weight\nexplicitly on the popup container so nothing inherits from the body\nstack, and add -webkit-text-fill-color:#fff directly on each text span.\n\nAlso return early with an empty string for states with no session data\nso hovering grey states produces no visible popup instead of \"0 session\nstarts\".\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"date": "2026-02-21T16:40:20Z"
},
"author": {
"name": "Isaac Bythewood",
"email": "isaac@bythewood.me"
}
}GitHubStatus
A self-hosted status monitoring service.
{
"sha": "29ef9ac1d74e121a7835242018957030da2c5374",
"commit": {
"message": "Refactor property email templates to use base template\n\n- Extract common HTML structure into property_email_base.html\n- Remove duplicate boilerplate code from property_down.html and property_recovery.html\n- Improve maintainability and consistency across email templates",
"date": "2025-06-01T18:33:32Z"
},
"author": {
"name": "Isaac Bythewood",
"email": "isaac@bythewood.me"
}
}GitHubBlog
A self-hostable blog built on Wagtail targeted towards developers with code blocks, syntax highlighting, live search, great SEO, and a clean customizable UI.
{
"sha": "40f185b3ddfa78ba96fa59aac0fe084cfe3a97c9",
"commit": {
"message": "Try --ignore-installed flag to install pipenv, latest version broke",
"date": "2024-10-26T14:31:10Z"
},
"author": {
"name": "Isaac Bythewood",
"email": "isaac@bythewood.me"
}
}GitHubTimelite
A simple time tracking progressive web app. Uses local storage and service workers to remain accessible offline. Sometimes you just need the essentials when you are busy.
{
"sha": "cf4cdb93551a494420ec95319df4f29e211c631d",
"commit": {
"message": "Update dependencies to latest and configure dev indicator position\n\n- Upgrade all packages to latest (notably Next.js 15→16, React 19.2.4, react-hook-form 7.71.2)\n- Add next.config.js with devIndicators position set to top-right\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"date": "2026-02-21T13:53:50Z"
},
"author": {
"name": "Isaac Bythewood",
"email": "isaac@bythewood.me"
}
}GitHubTimestrap
A full feature time tracking web app. Supports multiple users and exporting reports in multiple formats. Makes use of websockets to maintain state across clients.
{
"sha": "a0633024e1cc189656a0293eacbdfc3af736532a",
"commit": {
"message": "Add alpine version lock to Dockerfile",
"date": "2023-04-03T23:29:58Z"
},
"author": {
"name": "Isaac Bythewood",
"email": "isaac@bythewood.me"
}
}GitHubisaacbythewood.com
The personal website of Isaac Bythewood. So this site...
{
"sha": "424a109cf97803a2b9c94e17e980d0bbfc5a59ed",
"commit": {
"message": "Delay home page animations until background image loads\n\nHold the name slide-in and description fade-in animations in a paused\nstate until the background image fires its onLoad event, preventing\nthe animations from running against a blank/unloaded background.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"date": "2026-02-21T13:44:53Z"
},
"author": {
"name": "Isaac Bythewood",
"email": "isaac@bythewood.me"
}
}GitHubNew Tab
A clean new tab page extension for Chrome.
{
"sha": "4beaa628a7bd8b6073e8ea41bb4fc06616165813",
"commit": {
"message": "Revert \"Add new background image\"\n\nThis reverts commit de2ca340b29c961068a5ec2e7ed661729045ea5e.",
"date": "2022-08-21T00:08:52Z"
},
"author": {
"name": "Isaac Bythewood",
"email": "isaac@bythewood.me"
}
}GitHubdockerfiles
All the Dockerfiles I use for various purposes. More detailed usage instructions are at the top of each Dockerfile.
{
"sha": "9b7cc6f89d12a0fa4d249b821afeca6227dbc3aa",
"commit": {
"message": "Update webdev Dockerfile: rename Dev Containers plugin reference and swap pipenv for uv\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"date": "2026-02-20T23:01:21Z"
},
"author": {
"name": "Isaac Bythewood",
"email": "isaac@bythewood.me"
}
}GitHubalpinefiles
Some of the files that I use on my Alpine Linux servers.
{
"sha": "e34db37814aee1a915bd903fc0ccc4848190aef7",
"commit": {
"message": "Add daemon.json",
"date": "2022-09-11T21:26:27Z"
},
"author": {
"name": "Isaac Bythewood",
"email": "isaac@bythewood.me"
}
}GitHubdotfiles
A variety of config files for setting up new systems.
{
"sha": "0e17ca88b954532f78bdc226d0ae0b2097024c0a",
"commit": {
"message": "Remove spacevim install",
"date": "2024-07-13T16:38:16Z"
},
"author": {
"name": "Isaac Bythewood",
"email": "isaac@bythewood.me"
}
}GitHub