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.buildImageavailable 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!