Kubernetes Ingress provides a small, portable API for exposing HTTP services. More advanced behavior often
depends on controller-specific annotations or custom resources, which makes configurations harder to understand
and move between implementations.
Gateway API is a family of Kubernetes APIs for L4 and L7 routing. It is
role-oriented, protocol-aware, and expressive enough to describe common routing behavior without hiding it in
annotations.
This website repository uses Gateway API together with kubenix. The Kubernetes
resources are written as Nix attribute sets and rendered into manifests by the flake.
Nix is a purely functional package manager designed for reproducibility, declarative environments, and build isolation. It’s not just a package manager - it’s a paradigm shift for building and managing systems, environments, and infrastructure.
Whether you’re building CI pipelines, container images, or local development environments - Nix gives you full control over versions, dependencies, and the build process.
Key Benefits
Reproducible Builds
Builds are content-addressed: identical inputs yield identical outputs.
No surprises between “it worked on my machine” and production.
Isolated Environments
Dependencies are never installed globally.
Every build or shell gets its own clean environment.
Atomic Changes & Rollbacks
All installations are transactional.
Rollback with a single command.
Unused packages can be garbage-collected.
Declarative Infrastructure
With NixOS, your entire system config is in a Git repo.
CI pipelines, Docker images, and VMs can be defined identically across stages.
Build Caching & Remote Builds
Efficient reuse of build artifacts.
Works with remote builders and binary caches like Cachix.
Go DevShell Example
Create a self-contained dev environment for a Go project - no Go installation required on the host.