Stack crib 2025-2026 — the tour and the tech-radar underneath

Table of Contents

Format note: this is MTV Cribs (2000–2011, MTV) crossed with the Thoughtworks Tech Radar. Cribs is the voice; the radar table at the end is what the tour was really about.

Prior art (brief)

  • Thoughtworks Tech Radar — the canonical org-level format. Quadrants (Techniques, Tools, Platforms, Languages & Frameworks) × rings (Adopt, Trial, Assess, Hold). Published semi-annually. Cited by ClearScore, RIO, OneUptime, and dozens of engineering blogs in 2026.
  • usesthis.com — the individual-dev equivalent, running since 2010. Interviews about hardware, software, and workflow.
  • MTV Cribs for engineering orgs — doesn't exist as a genre. The tour format has been parodied for garages, dorms, homelabs, and terminal setups (mostly on TikTok and YouTube), but there is no established engineering-org version. This note fills the gap and makes it useful by ending in a real radar.

Numbers below come from a 2026-09-08 survey of the jwalsh/* org (86 repos) and aygp-dr/* org (447 repos).

Welcome — front door

You are looking at 533 repositories across two GitHub orgs. Come on in.

There is a Makefile in almost every one of them. 58 in jwalsh, 286 in aygp-dr. Nobody around here has ever heard of just.

Behind the door: a persistent emacs --daemon inside tmux, connected to a CIDER session, jacked into a Clojure nREPL on 127.0.0.1:42527. Every clj eval, every cljs build, every site query goes through that one JVM. Twelve seconds of JVM startup per throwaway clojure -M invocation would burn the entire session budget. So it doesn't happen.

The kitchen — task tracking

No JIRA. No Trello. No Linear.

beads — a git-backed task store, polyglot (Go core, TypeScript on npm, Python on PyPI, Ruby). The task DB lives in the repo, versioned like any other file. bd ready shows unblocked work. bd close <id> finishes it. bd sync && git push ships it. Merges resolve like any other conflict; there is no separate SaaS to keep in sync.

Found in 15+ jwalsh repos, 30+ aygp-dr repos. Every mature project that agents touch has a .beads/ directory next to .git/.

The garage — the deploy target

TRAMP over SSH to DreamHost VPS. The site deploys through Emacs. org-publish writes files directly to /ssh:www_wal_sh@vps47738.dreamhostps.com:~/wal.sh/ as if it were a local path. There is no CI/CD pipeline in the conventional sense; the laptop is the CI runner and the deploy tool is the text editor.

This is the only place in the two orgs where deploy happens this way. Everywhere else it's rsync-over-SSH, Docker Compose, or GitHub Pages. The wal.sh pattern is a signature, not a convention.

The rec room — the AI agent config

CLAUDE.md in every repo. 27 in jwalsh, 159 in aygp-dr — nearly universal in mature projects. Codebase context, architecture, path-safety rules, deploy tier classification. When an agent enters a repo it reads CLAUDE.md first and knows the local conventions before touching anything.

MCP servers wired up: Atlassian, Gmail, Google Calendar, Google Drive, Hugging Face, Slack, Uber (yes), plus a self-hosted claude-in-chrome extension for browser automation. Agent runs at Sonnet 4.6 by default; Opus 4.7 in /fast mode with a 1M-context window for research work.

The master bedroom — where it all comes together

org-mode. Everything is literate. The site source is site/*.org. Diagrams live inline as #+begin_src dot :file <name>.png blocks — never loose .dot files. Code lives inline as #+begin_src clojure blocks with #+RESULTS: evidence underneath. Property drawers on headings carry :VERIFIED_AT:, :VERDICT:, :FINDING: metadata that turns any assertion into an auditable claim.

The .cljc / .cljs split (pure reducer core, thin browser adapter) is now the shape for every new interactive artifact — see the TOC rail highlighter and the poll SPA for two 2026-09 examples on this repo alone.

The workshop — testing discipline

clojure.test.check property tests against the pure .cljc cores. pytest for Python work. fast-check for the JS mirrors when they exist (see agent-federation-harness). cloverage on the Clojure side. No mutation testing in CI; done ad-hoc when a decision warrants it.

Verification convention that recurs: hash-chain audit ledger (.verify/chain.jsonl). Every validation appends a block binding the change hash + the verifier to the previous block's hash; tamper-evident by construction.

The pattern — spec as truth center

The site wal.sh/tools/*, wal.sh/research/*, wal.sh/current/* is the source of truth for specs. Other repos in both orgs link back to wal.sh URLs from their READMEs:

Specs are versioned; implementations pin to a research-site commit hash in their README. The publishing pipeline is deliberately one-way: research site → dependent repos, never the reverse.

The tech radar

The tour is over. Here is the same information in the format an engineering director would actually accept.

Adopt

Item Quadrant Since
GNU Make (via gmake on FreeBSD) Tools forever
org-mode + literate blocks Techniques forever
Clojure + ClojureScript (.cljc pure core) Languages & Frameworks 2024
clojure.test + test.check PBT Techniques 2025
beads for task tracking Tools 2025
CLAUDE.md-per-repo Techniques 2025
TRAMP-over-SSH for wal.sh deploy Platforms forever
Property drawers + verification ledger Techniques 2025

Trial

Item Quadrant Note
Rust for systems tools Languages transform-tool-rs, crowsnest-rs, formal-methods
WASM for spec-portable codecs Platforms via transform-tool-rs
Nix flakes for reproducible builds Tools 3 aygp-dr repos; not sitewide
Firecracker-style microVMs Platforms Adwankar 2026-09 post; being read, not yet adopted
Boot loader + manifest for global JS Techniques GH #92 plan; not yet built

Assess

Item Quadrant Reason
Automated mutation testing (mull, clojure.test.mutants) Techniques Danluu 2026-09 shows agents write weak PBT without pressure
Playwright for browser adapter tests Tools Currently used only in agent-federation-harness; not standard
Dynamic-import boot loader vs static bundle set Techniques Blocked on #92 design review
Site-tracker consolidation of adtech registry Techniques Semantic clean-up in publish.el
CDN worker injection (Cloudflare Workers) Platforms Rejected for wal.sh; still worth watching for other repos

Hold

Item Reason
just as a Make replacement 344 Makefiles already work; churn cost dominates ergonomic gain
npx shadow-cljs as build entry Spawns fresh JVM per invocation; use the persistent CIDER session
JIRA / Linear / Trello Beads is git-backed and merges cleanly across agent branches
Static-file per-state HTML See poll-pushstate — pre-generation scales as combinatorial explosion
emacsclient -e from agent shells Wedges the daemon; use nREPL 42527 instead
Mermaid diagrams No FreeBSD renderer; Graphviz/dot only
Loose .dot or .rkt files under site/ Diagrams and code live inline in org; artifacts only on disk

Falsification

The crib framing is only worth writing if the radar underneath is honest. Two ways this note is falsifiable:

  1. If in 6 months any Adopt item has been dropped, that adoption was provisional and the tier was wrong. Re-tier or delete.
  2. If any Hold item lands anyway, either the reasoning was wrong or the constraint changed. Note the change; leave the crossed-out original for the audit trail.

Related