DEV Community

Ilean Monterrubio Jr
Ilean Monterrubio Jr

Posted on • Originally published at ilean.me on

Compendium: Reproducible Developer Environments in One Config

Why I Built It

Earlier this year I kept coming back to a project that had been on the back burner for a while. The original idea was an IDE with a built-in way to configure development environments, but the more I researched, the clearer it got that I was looking at a multi-year build. Not wanting to wait that long to ship something useful, I narrowed in on the feature I cared about most: the ability to configure and set up a development environment easily, without the IDE wrapped around it.

Throughout my career, setting up toolchains and development environments has always been a painful experience: embedded cross-compilers that only build cleanly on the maintainer's exact OS version, READMEs that promise five minutes and take three days. I've also spent weeks building containers to wall off the development environment, only to watch the image balloon every time another tool got added. The documentation goes stale almost as fast as it gets written, because the tools moved on and nobody updated it.

Why C and C++ First

For Compendium's first iteration I wanted to focus on the language where the setup pain runs deepest: C and C++. Every scripting language already has a version manager that works well enough. nvm handles Node, pyenv handles Python, asdf and mise cover most of the rest. None of them seriously handle GCC, clang, or arm-none-eabi-gcc. Embedded toolchains in particular are where I lose the most time, between USB drivers, OpenOCD configs, and compiler versions that have to match the linker script the project was tested against. Starting there meant solving the hardest case first. Adding Go, Python, and Node on top of that architecture turned out to be the easy part.

v0.1.1 Ships Today

v0.1.1 ships today. The CLI is a single Go binary, the config is a single TOML file, and everything installs under ~/.local/compendium/ without sudo. Rather than recap the docs here, I'll point you at them: compendium.ilean.me has the quick start, the full tool list, the config reference, and per-language guides for C/C++, Go, Python, Node, and embedded.

Tech Stack

  • CLI : Go (single static binary, no runtime dependencies)
  • Configuration : TOML
  • Registry : JSON manifests, hosted on GitHub
  • Platforms : macOS (Apple Silicon, Intel), Linux (x86_64, arm64)
  • License : GPL v3 (CLI), CC0 (registry)

Roadmap

v0.2 broadens C/C++ build system support to Autotools, adds Java and Rust, completes the embedded cross-compiler set with Xtensa for ESP32, and wires up the custom git hook runner. v0.3 introduces a Compendium-native C/C++ package manager. The full roadmap lives in the docs. If you want to follow along, contribute, or request a tool for the registry, GitHub issues and discussions are open.

Project Links

Top comments (0)