A Straightforward Way to Configure Containerized Applications.

Simply describe with JavaScript and deploy from the command line.

npm install -g @kelda/install

Got questions? Take a tour of Kelda →

  // Run containers on Kubernetes.
  const app = new Container({
    name: 'appName',
    image: 'anyDockerImage',
  // Share and reuse configurations.
  const Redis = require('@kelda/redis');
  // Create a containerized database with 3 workers.
  const redis = new Redis(3, 'AUTH_PASSWORD');
  // Set up a secure network.
  allowTraffic(publicInternet, app, 80);
  // Keep sensitive information secure.
  app.env = {
    GITHUB_OAUTH_TOKEN: new Secret('githubToken'),
  // Boot the underlying virtual machines.
  const vm = new Machine({
    provider: 'Amazon',
    region: 'us-west-1',

What is Kelda?

Kelda is a simple way to configure, run, and manage containerized applications in the cloud.

Kelda’s intuitive JavaScript API makes it easy to describe the systems you want to run in the cloud — that is, the virtual machines, containers, network policies, and more.

Just pass this high-level view to Kelda’s deployment platform using the Kelda CLI, and we take care of the nitty gritty details needed to get your system up and running in your cloud of choice.

Oh, and Kelda isn’t all-or-nothing - we run great alongside any existing services you might have.

Deploy to Cloud

Why Kelda?

Infrastructure as code. Real code.

No more YAML, templating, complicated CLIs, and new domain specific languages. Code your infrastructure in a familiar JavaScript API, and take advantage of functions, objects, argument validation, and all the other good stuff you already love.

Hassle-free sharing.

Kelda blueprints are easily sharable with npm. Let your company experts and open source wizards write the common configuration for the applications they know the best, and simply import their blueprints like any other software library.

Easily compose applications.

Clearly defined blueprint APIs help you compose applications correctly with each other, making it easy to do the right thing and difficult to do it wrong.

Simplify your code.

It can be difficult to create, understand, and maintain lengthy configuration files. Fortunately we handle that for you.

Before deployment.yaml

  apiVersion: apps/v1beta1
  kind: Deployment
    name: nginx-deployment
        app: nginx
          app: nginx
        - name: nginx
          image: nginx:1.7.9
          - containerPort: 80

With Kelda deployment.js

  const nginx = new Container({
    name: 'nginx',
    image: 'nginx:1.7.9',
  allowTraffic(publicInternet, nginx, 80);

Deploy & Manage Easily.

With Kelda, it is not just easy to get started. We help you manage the deployment and keep it happy.

  npm install -g @kelda/install

Install Kelda

  const kelda = require('kelda');
  const { Spark } = require('@kelda/spark');

  const sparkWorkerCount = 4;

  const vm = new kelda.Machine({ provider: 'Amazon' });
  const infrastructure = new kelda.Infrastructure({
    masters: vm,
    workers: vm.replicate(sparkWorkerCount + 1),

  const spark = new Spark(sparkWorkerCount);


Describe your deployment in a JavaScript blueprint

  kelda run ./myBlueprint.js

Deploy applications to the cloud on Kubernetes

  $ kelda show
  MACHINE         ROLE      PROVIDER    REGION       SIZE         PUBLIC IP        STATUS
  i-0735704120    Master    Amazon      us-west-1    m3.medium    connected
  i-09329093f9    Worker    Amazon      us-west-1    m3.medium      connected

  0b8eb391d8ce    i-027e5d72ed    ...     spark-master    running    About an hour ago

  # SSH into containers.
  $ kelda ssh spark-master

Keep tabs on your deployment

Stay in Touch.

Get on our mailing list to occasionally get news about Kelda. We’d also love to hear from you. Ask us questions, give us feedback or just say ‘Hi’.