PULSE
Source inPush a directory, get a running app — no Dockerfile, no YAML, no pipeline to assemble first
///
ServicesPostgres · Redis · object storage · search · queues — provisioned on request, bound as environment variables
///
LiveStreaming logs and real per-instance CPU and memory from the first push
///
Two doorsConsole or terminal — the same actions, the same answers, the same platform
///
Source inPush a directory, get a running app — no Dockerfile, no YAML, no pipeline to assemble first
///
ServicesPostgres · Redis · object storage · search · queues — provisioned on request, bound as environment variables
///
LiveStreaming logs and real per-instance CPU and memory from the first push
///
Two doorsConsole or terminal — the same actions, the same answers, the same platform
///
Early access — managed Kubernetes, without the cluster

Your code is running.
You never opened a Dockerfile.

Sprintsail is a managed application platform. Point it at a directory of source: it works out the language, installs the dependencies, builds it, starts it, and keeps it running. Attach Postgres, Redis, object storage, search, or a queue and the credentials land in the app’s environment. There is no cluster to provision, no YAML to maintain, and no build pipeline to assemble first.

acme / prod · deploying orders-api 3/3 running
Upload
Detect
Build
Start
Running
$cf push orders-api
detected Node.js — no Dockerfile required
building dependencies installed, image staged
binding orders-db (postgres) → DATABASE_URL
✓ starting 3 instances
instances 3/3 running · 512M each
orders-api3 instances · 512M · Node.jsrunning
orders-dbpostgres · bound as DATABASE_URLbound
orders-workerqueue consumer · staging buildbuilding
workspace: acme · environment: prod environment: dedicated · cluster: not yours to run
0
Clusters to provision
0
Dockerfiles or YAML to write
5
Managed services · self-service
2
Ways in · console or terminal
// How it works

Sign in. Push. Ship.

Five steps from an empty account to a running application with a database attached. No cluster to provision, no pipeline to assemble first.

🔑
Sign in with SSO

Single sign-on through the platform front door. Your identity carries your roles with it — every action you take is scoped to what you are actually allowed to do.

SSO · no shared admin account
🏢
Get a workspace

Self-service onboarding creates your workspace, then separate environments inside it — dev, staging, prod. Create one in either place and it exists in both, with nothing to reconcile.

workspace → environment → app
⬆️
Push your source

Upload your code from the console or push it from your terminal. The platform works out the language, installs the dependencies, and produces a runnable image. No Dockerfile required.

source in
🔗
Bind services

Pick Postgres, Redis, object storage, search, or a queue. Binding injects the credentials into your app environment as variables.

bind → env vars
👀
Watch it run

Live logs, per-instance metrics, deployment history, and scaling — in the console or your terminal, reading the same platform either way.

logs · metrics · scale
Things you never open →
Clusters Capacity Node health Builds Runtime images Certificates Routing Service provisioning Upgrades Patching Clusters Capacity Node health Builds Runtime images Certificates Routing Service provisioning Upgrades Patching
// What you get

The things an app needs.
Already wired up.

A running app is rarely just a process. It needs a database, somewhere to put files, a queue for the slow work, and a way to see what it is doing at three in the morning. All of it is here, and all of it is self-service.

🚀
Apps

Push source, get a running app. The platform detects the language, builds an image, and runs it — restarting it when it falls over. Deployment history is kept for every push.

🗄
Postgres

Managed Postgres, provisioned on request and bound to your app with the credentials injected as environment variables. No ticket, no wait.

Redis

Managed Redis for cache and session state. The same self-service provision-and-bind flow as every other service here.

📦
Object storage

S3-compatible buckets provisioned per environment. Bind to an app and the credentials arrive in the environment — your existing S3 client works unchanged.

🔍
OpenSearch

Managed search and log analytics. Provisioned and torn down through the same self-service path as every other service, so the lifecycle is consistent.

📨
Queues

Managed message queues for async work. Provision, bind, and your worker starts consuming — no broker to run yourself.

📊
Metrics

Real per-instance CPU and memory, read live from the running instances — not a cached summary. You see each instance separately, so a single sick instance is visible.

📜
Logs

Live application logs streamed from the running instances, in the console or in your terminal. Same logs either way.

⚖️
Scale

Change instance count and memory and the platform rolls it out. One writer owns the instance count, so the console and the terminal never fight each other.

// What you operate

You get a platform,
not a cluster.

There is no cluster to size, no nodes to patch, no build system to keep working, and no glue to write between a database and the app that needs it. Sprintsail is managed Kubernetes, and the point is that you never open it: capacity, node health, certificates, routing, service provisioning, upgrades and patching all sit below the line you work at, and none of it is yours to run.

You get a console, a terminal, and somewhere to push. Your environment is dedicated to you, not a shared pool you queue behind. If you later need the same platform running inside your own boundary rather than ours, that is Drydock — the same Kubernetes platform shipped to you instead of operated by us. A different address, not a rewrite.

Your code — the source you pushedYour code
Console and terminal — two ways in, one set of answersSprintsail
↓ Below this, you operate nothing ↓
Build — language detected, dependencies installed, image producedManaged
Run — instances started, restarted when they fall over, resized on requestManaged
Services — databases, caches, storage, search, queues, bound to the appManaged
Access — single sign-on, permissions enforced per requestManaged
Kubernetes — clusters, capacity, network, certificates, upgradesManaged
// Console or terminal

Everything the console does,
your terminal does too.

Deploys, logs, environment variables, memory changes, and service bindings all work from the command line, against the same platform the console talks to — so the two never disagree about what is running. Pick whichever door suits the moment. Compatibility note: the client is the standard cf CLI, so a team that already has it installed has nothing new to install. Full reference in the docs.

01 — sign in

Point your terminal at Sprintsail.

Log in once with single sign-on and your workspace and environment targets are set — the same identity and the same roles you have in the console.

# point the client at Sprintsail
$ cf api https://api.sprintsail.com
$ cf login --sso
workspace acme
environment prod
02 — deploy

Source in. Running app out.

Push a directory. The platform works out what the app is, installs its dependencies, and produces an image it then runs. No Dockerfile to write and no YAML to maintain — though you can bring your own image if you prefer.

# no Dockerfile required
$ cf push orders-api
detected Node.js
building ████████████ done
starting 1/1 instances
✓ app started
03 — logs

Live logs, straight from the instances.

Stream logs from the running app, or pull recent history. The console reads the same source, so what you see in a browser and what you see in a terminal never disagree.

# follow the running app
$ cf logs orders-api
[APP/0] listening on :8080
[APP/0] GET /health 200
[APP/1] GET /orders 200
04 — scale

More instances, more memory.

Change the instance count or the memory limit and the platform rolls the change out. One writer owns the instance count, so console and terminal changes converge instead of fighting. Scaling is a change you make, not one the platform guesses at.

# scale out and up
$ cf scale orders-api -i 3 -m 1G
scaling to 3 instances
rolling ███████░░░░░ 2/3
✓ 3/3 running
// Languages

Bring the language.
Skip the Dockerfile.

The platform inspects what you pushed, works out how to build it, installs dependencies, and produces a runnable image. If you would rather build your own image, push that instead — both routes end in the same place.

🟩
Node.js
Detected from source
🐍
Python
Detected from source
🐹
Go
Detected from source
Java
Detected from source
💎
Ruby
Detected from source
🟪
.NET
Detected from source
🐳
Your image
Bring an OCI image
🧩
Static sites
Detected from source
// Why this one

Built by people who
operate it too.

🚀

From source to running app

Push a directory. The platform works out what the app is, installs its dependencies, builds an image, and starts it — nothing to write, nothing to maintain, no pipeline to assemble first. Every push is recorded, so you can see what went out and when.

One push

No cluster to run

Nothing to provision, size, upgrade, or patch. Capacity, node health, certificates, routing, and platform upgrades are ours. You get somewhere to push and a place to watch it run; the Kubernetes underneath is never something you open.

Managed for you
🗄

A database, attached

Postgres, Redis, object storage, search, and queues are one request away. Provisioning happens for you, and binding puts the credentials into your app environment as variables — alongside the ones you set yourself. Your existing client library reads them and connects, unchanged.

Self-service
📊

Logs and metrics that are real

Application output streams live from the running instances, in the console or in your terminal, and CPU and memory are reported per instance rather than as a rolled-up average — so one sick instance among three is visible instead of averaged away. When an app needs more memory, change it and the platform rolls the change out.

Live, per instance
🔐

Sign in once, permissions travel

Single sign-on at the front door, and every action after that runs as you. Your roles ride along with each request and are enforced per call, so the console can never do more on your behalf than you could do yourself.

SSO · RBAC
🗂

Workspaces that match your environments

A workspace for the team, and separate environments inside it for dev, staging, and prod. Create one in the console and it is there in the terminal in the same breath; delete it in either place and it is gone from both. There is no second set of books to drift out of date.

Dev · staging · prod
// Access

Early access,
deliberately small.

Sprintsail is open to a small number of teams while we run it in anger. We would rather have a handful of applications we genuinely support than a signup button and a queue of tickets.

Early access
Talk to us

Bring an application you actually care about. We onboard you, you push, and we stay on the other end of the line while you do it. In exchange we want honest feedback about what breaks.

  • Self-service workspaces, environments, and app deploys
  • Postgres, Redis, object storage, OpenSearch, queues
  • Live logs, per-instance metrics, and scaling
  • Console and cf CLI against the same API
  • Direct access to the engineers who operate it
Request access
Your boundary
Drydock
Contact sales

If the platform needs to live inside your compliance boundary rather than ours, that is Drydock — the same Kubernetes platform, deployed single-tenant in your environment. Same workflow, different address.

  • Single-tenant, inside your boundary
  • The engine Sprintsail itself runs on
  • The same platform — no rewrite to move
  • Operated by the team that built it
See Drydock
// Also from Orion

Built, run, and sold by the same team.

// Get started

Bring one app.
Push it today.

Early access is open to a small number of teams. Tell us what you want to run and we will get you onboarded.