The FREE stack, layer by layer, and how much I trust each piece of it today.
The radar is drawn by JavaScript. Nothing is lost without it: every ring and layer it shows is listed, in full, further down this page.
Rings
Layers
Point at a blip for what it is and which way it moved; click it to open its entry. Click a ring or a layer to isolate it.
The rings #
- Adopt
- proven in daily work, and the default for anything new.
- Trial
- running on real projects, not yet a default.
- Assess
- worth a prototype, and no commitment yet.
- Deprecate
- actively discouraged for new work.
A name in parentheses โ (new), (moved in), (moved out) โ says what changed
since the last revision; a note after a dash says why.
What FREE means #
- F โ Functional
- declarative, predictable systems with clear effects.
- R โ REPL
- code evaluated on the running system, with no write-compile-test lag.
- E โ Extensible
- a stack built to scale into flexible, extensible systems.
- E โ Environment Control
- the whole lifecycle under my own control: no hidden telemetry, no paywalls, one-command self-hosting.
๐งฌ Languages #
โ Adopt #
- Guile Scheme and Lisps in general
- Emacs Lisp
- JavaScript (vanilla)
- Rust
๐งช Trial #
- Guile embedded in C and GTK4 (moved in) โ the dock Wayland was waiting for, with a Lisp engine inside a native app
๐ Assess #
- Guile Hoot โ Scheme compiled to WebAssembly
- Zig
- Hare
๐๏ธ Deprecate #
- Haskell (moved out) โ as beautiful and powerful as it is, it’s simply too complex for 9/10 use-cases
- Scala
- Common Lisp โ rather use Scheme if possible
- TypeScript
๐จ Frameworks & UI #
โ Adopt #
- GNU Artanis
- GTK4 Libadwaita
- Olive CSS for all serious web projects (utility class vanilla CSS)
- Hygguile UI components (batteries included Guile Scheme UI framework built on Olive CSS)
๐งช Trial #
๐ Assess #
๐๏ธ Deprecate #
- Svelte
- Servant (Haskell), API as a type
- ZIO (Scala)
๐๏ธ Data & Storage #
โ Adopt #
- SQLite
- PostgreSQL
- Plain SQL queries
- Hetzner Storage Volumes with Cron-job based backups and rsync
๐งช Trial #
๐ Assess #
๐๏ธ Deprecate #
- MySQL
๐งฐ๏ธ Tools & Environment #
โ Adopt #
- GNU Guix
- Emacs
- Org mode
- Maak build tool and command runner
- Veritas test framework (idiomatic unit, integration and black-box testing framework powered by Lisp - Guile Scheme)
- Scriba structured logging framework (modular log routing, formatting, and filtering, allowing developers to generate human-readable console logs during development and machine-readable logs for production environments)
- Woodpecker CI/CD โ the CI that replaced the Jenkins pipelines I used to maintain
- Nix Flakes
- Nix dev shells
๐งช Trial #
- Podman (moved in) โ daemonless, root-less containers that stay under my own control
- Hyprland (moved in) โ the Wayland compositor I actually use daily, after SwayFX taught me compositor scripting
๐ Assess #
- Forgejo โ a self-hosted forge for code I want to keep closer than Codeberg’s public instance
- Guix Home โ one declarative description of the machine I actually work on
๐๏ธ Deprecate #
- Jenkins (moved out) โ shared-library pipelines and Groovy DSLs, traded away for a thinner agent
๐ Platforms & Delivery #
โ Adopt #
- Custom low-power green VPS (Hetzner)
- Codeberg โ free software’s own forge, and the home of every project of mine
๐งช Trial #
- Self-hosted Woodpecker runners on the same VPS (moved in) โ CI that never leaves infrastructure I control
๐ Assess #
- Guix System images on AArch64 (moved in) โ a machine I can describe, build and roll back, on hardware that is not x86
- Guix System as the whole server, not just the toolchain
๐๏ธ Deprecate #
- Amazon AWS
โ๏ธ Practice & Craft #
โ Adopt #
- Authorization and Authentication with Bewaking tokens as cookies
- Guix Manifests
- Guix dev shells
- Hexagonal architecture / ports and adapters (moved in) โ the boundary earns its keep wherever the domain is the complicated part; the Hexagon of Doom is the case where it is not
๐งช Trial #
- Server-side rendering over client-side JavaScript (moved in) โ pages that work before, and without, a megabyte of framework
- This very site as a single Org tree (moved in) โ prose, build script and metadata in one plain-text source
- Parsing Expression Grammar in Scheme with
(ice-9 peg)(moved in) โ how OrgWebAlchemy turns Org into HTML without a parser generator
๐ Assess #
- Property-based testing โ describing the invariant instead of the example
- Reproducible CI with `guix time-machine`