I make much small software for myself and friends. Most of it was Go, so I told them to download the Go toolchain. They (and I) got tired of compiling everything from source when I made something in Rust 😛 So instead of finding some off-the-shelf something that got me nearly there but not quite, I made my own thing.
It started off as a basic directory lister that looked at some files on disk that I uploaded fresh from the compiler. Exe.dev's storage quota (see footer for link) is shared across all VMs, so the more I build, upload, and retain, the less storage I'll have for other fun things.
I picked up a Hetzner Storage Box recently (cheap, slow, cloud storage accessed over SFTP, WebDAV, etc.) to house off-site backups. Then realised I could also make a subaccount just for storing these releases and use the Exe VM as a cache for the latest N releases of the N most-recently-updated projects, evict the rest, and fetch them over WebDAV from the storage box on request.
So that is what this is and what it do. Exe's nice coding agent Shelley did all the grunt work :)
Click to see a Shelley-generated timeline of the conversations from VM creation to making this page
- Mar 3, 2026
-
Create the VM and build the first server with Claude Opus 4.6. Serve projects, versions, and artefacts straight from directories and metadata files. Resolve
/latestrequests to the current version, generate mise snippets with a copy-to-clipboard button, add cache headers, path-traversal checks, and systemd deployment. - Mar 3, 2026
-
Set up web fonts and baseline styles with Claude Opus 4.6. Move the mise snippets to the top of project and version pages and fix their output format.
- Mar 3, 2026
-
Add homepage copy with Claude Opus 4.6 so the front page says what the site hosts and links to git.secluded.site and mise. Tighten the wording after deploy.
- Mar 4, 2026
-
Fix URL generation for Rust-compiled artefacts with Claude Opus 4.6. Detect both Go and Rust naming schemes and generate the correct mise templates for each.
- Mar 4, 2026
-
Refit the HTML layout with GPT-5.3 Codex. Add landmarks, breadcrumbs, a two-column project view, mobile order fixes, the "Visit home page" label, the "Depository" name, and the "artefact" spelling.
- Mar 4, 2026
-
Swap the project columns with Claude Opus 4.6.
- Mar 7, 2026
-
Debug mise install failures with Claude Opus 4.6. Trace the breakage to a serialisation bug in mise's option parser and restructure the generated config to work around it.
- Mar 11, 2026
-
Fix a version-naming mismatch with Claude Opus 4.6. Align directory names, artefact filenames, and the version strings mise expects.
- Mar 11, 2026
-
Teach the server to resolve "latest" inside artefact paths with Claude Opus 4.6. Trace a download failure to HTTP-vs-HTTPS mismatches in the proxy chain and fix URL generation and header forwarding.
- Mar 13, 2026
-
Plan the storage shift with Claude Opus 4.6. Keep metadata local, move binaries to a Hetzner Storage Box, fetch them on demand, and evict cached files by recency.
- Mar 13, 2026
-
Refactor local-only storage into a two-tier system with Claude Opus 4.6 as orchestrator, GPT-5.4 for architecture decisions, and Claude Sonnet 4.6 for implementation. Move artefacts to Hetzner over WebDAV as cold storage, keep local disk as a hot cache that fetches on demand, add daily eviction, uptime monitoring, and 57 tests.
- Mar 16, 2026
-
Add the "Read more about this site" link with GLM-5. Create /about/, add breadcrumbs, include the owner's prose, and leave an empty details block for this timeline.
- Mar 16, 2026
-
Fill that empty block here. Have Claude Opus 4.6 orchestrate, Kimi K2.5 condense Shelley's conversation database, and GPT-5.4 write this timeline HTML from the archive.