Steiger: OCI-native builds and deployments for Nix, Bazel, and Docker with direct registry push

We built Steiger (open-source) after getting frustrated with Skaffold’s performance in our Bazel-heavy polyglot monorepo. It’s a great way to standardize building and deploying microservice based projects in Kubernetes due to it’s multi-service/builder support. Our main pain points were:

The TAR bottleneck: Skaffold forces you to export OCI images as TAR files, then imports them back into Docker. This is slow and wasteful

Cache invalidation: Skaffold’s custom caching layer often conflicts with the sophisticated caching that build systems like Nix and Bazel already provide.

Currently supported:

  • Nix: Works with flake outputs that produce OCI images (built with pkgs.ociTools.buildImage available via overlay or nixpkgs#390624)
  • Bazel: Direct OCI layout consumption, skips TAR export entirely
  • Docker BuildKit: Uses docker-container driver, manages builder instances
  • Ko: Native Go container builds

Still early days - we’re planning file watching for dev mode and (basic) Helm deployment just landed!

2 Likes