Engineering
What 200+ Terraform modules taught us about reuse
We maintain more than 200 open-source Terraform modules. Publishing that many, and keeping them usable, has taught us more about reusable infrastructure than any single project could.
Consistency beats cleverness
The modules people actually reuse aren't the cleverest, they're the most predictable. The same input names, the same output shapes, the same structure across every module means a team can learn one and use all of them. Cleverness that breaks the pattern costs more than it saves.
Good defaults, full control
A good module is safe to use with almost no configuration, and flexible enough when you need it. Sensible, secure defaults get teams moving; well-named variables let them override without forking. If the only way to change behaviour is to copy the module, the abstraction has failed.
Versioning and docs are the product
For reusable infrastructure, the README and the version tag are as important as the HCL. Pinned versions let teams adopt changes deliberately instead of being surprised by them; clear docs are what turn a module from "someone's code" into something you'll trust in production.
Why we publish them
Open-sourcing the modules keeps us honest, code you publish gets written more carefully, and it means less reinvention for everyone, including the teams we work with. It's the principle we build on: good engineering compounds, and the work you do once should keep paying off.