Develop with confidenceRun on Kubernetes

Introducing Ephemeral Clusters . Read more

Build, test, integration and production bundled into a seamless, incrementally adoptable, application platform.

# Setup a local cluster + registry.
$ ns prepare local
# Start + develop your app server stack.
$ ns dev
# Run whole stack tests.
$ ns test
# Deploy to production.
$ ns deploy --env=prod


What is Namespace?

Namespace combines the best development, testing and production workflows into a simple development experience that allows teams to build robust cloud-native server applications.


Manage your Kubernetes-based development, testing and production environments in a single location, alongside your codebase.


Namespace handles incremental building, port management, log forwarding, remote builds, registry management, cross-platform support, and more.


Simple and robust whole-system testing built-in. Write client code to test your stack as a whole, or partially.


Ship to production with confidence, and without additional configurations. A single stack definition drives development, testing and production.

Feature highlight

Exploring Namespace features

Namespace helps with many development and production journeys.
Below you'll find some of the key ones.

Multi-language support

Unified experience in development, testing, and production across servers of different languages.
Built-in integrations for Go and Node.js/Web, with more languages and frameworks coming soon.
Existing Dockerfiles are supported out of the box.
# Deploy frontends, api backends and database
# servers from a single command.
$ ns deploy multitier/01-simple/frontend
Servers deployed:
[✓] multitier/01-simple/frontend took 8.4s
[✓] multitier/01-simple/apibackend took 5.7s
[✓] multitier/01-simple/postgres took 69ms

Whole system testing

Namespace knows your servers' dependencies, so bringing up a stack in an ephemeral environment is trivial.
Write tests using the language of your choice with the server-under-test endpoint injected into your code.
Run tests using ns test locally or in a CI pipeline.
Browser-based testing is supported.
server: {
name: "myfrontendserver"
integration: "nodejs"
// Adds API backend to the deployed stack
requires: [

Zero-effort onboarding

Simple CLI installation
Run ns prepare local after cloning a repo to get started.
Namespace reconstructs development environments from "pinned" versions, ensuring a consistent experience.
# The only requirement is having Docker installed.
$ curl -fsSL https://get.namespace.so/install.sh | sh
Executing Namespace's installation script...
Namespace was successfully installed to ~/.ns/bin/ns

Simple, built-in Kubernetes

With Namespace, setting up local development in Kubernetes becomes a breeze.
Creating applications is simple, no Kubernetes knowledge required.
Extensible at the core. Define arbitrary Kubernetes resources for advanced requirements.
$ ns prepare local
[✓] Validate Docker version.
[✓] Ensure local Kubernetes cluster is running
    (k3s in Docker).
🎉 "github.com/user/repo" is now configured for
local development.

Production-like dev environments

Namespace builds on Kubernetes for both development and production, without compromising on the developer experience.
Don't mock your dependencies. Namespace brings up your actual dependencies during development.
# Iterate on your server locally  
$ ns dev path/to/server
# Run end-to-end tests
$ ns test path/to/server
# Push the final version to production  
$ ns deploy path/to/server --env=prod

Fast iterative development

Ports and logs are available automatically, just like local development.
Code changes are pushed continuously, for any of the supported integrations, including compiled languages.
$ ns dev multitier/01-simple/frontend
Support services forwarded:
  [✓] postgres-server/postgres --> 5432
  [✓] go-backend-server/webapi
Main services forwarded:
  [✓] frontend/frontend

Secret management built-in

Open-source, free, robust secret management (based on age).
Share secrets with team members.
Simple declarative use.
Skip manual management with generated secrets.
# Create a new personal key.
$ ns keys generate
# Set a secret value.
$ ns secrets set \
Updated workspace.secrets (this file is encrypted).
# Commit the encrypted file to git for simpler sharing.
$ git add workspace.secrets

Powerful dependency system

Encapsulation: dependencies are self-contained.
Dependency injection for servers.
Keep definitions simple by relying on declarative resource injection.
// Configures how to build and run API backend
// and which servers it depends on.
server: {
  name:        "apibackendserver"
  integration: "go"
  requires: [