finds.dev← search

// the find

hairyhenderson/gomplate

★ 3,172 · Go · MIT · updated Jul 2026

A flexible commandline tool for template rendering. Supports lots of local and remote datasources.

gomplate is a CLI template renderer built on Go's text/template that pulls data from external sources — files, environment variables, HTTP endpoints, AWS EC2 metadata, Vault, Consul, GCP metadata — and renders them into output files or stdout. It's aimed at DevOps engineers who need config generation in CI/CD pipelines or container entrypoints without pulling in a full config management system.

The datasource abstraction is genuinely well-designed: everything is a URL, so switching from a local YAML file to a Vault secret path is a one-word change in your template command. The function library is extensive and practically useful — crypto primitives, CIDR math, semver comparisons, jq support — things you'd otherwise have to shell out for. EJSON support for encrypted JSON datasources is a nice touch that most similar tools skip entirely. The integration test suite is unusually thorough, with separate test files per datasource type including Vault, Consul, and cloud metadata mocks.

Go's text/template is the underlying engine, which means error messages when a template fails are notoriously unhelpful — you get a line number that's off and a message that rarely tells you what was actually nil. The datasource URL convention is powerful but has a steep learning curve; the difference between `env:///FOO` and `env:///FOO?type=application/yaml` is not obvious and the docs require careful reading to get right. There's no streaming or incremental output — large template sets with many remote datasources block until everything is fetched, which can make pipeline startup slow. The project also hasn't had a major release in a while and the Go module structure (packages exposed at the root like `gomplate/math`, `gomplate/crypto`) would be awkward to use as a library rather than a CLI.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →