Meerkat takes a GitHub repo — yours, or one we create in your account — and gives it a container build, a reviewed release pipeline, gated secrets, and continuous watching. No Kubernetes to learn. No CI dashboards to babysit. No lock-in.
$ blankcut promote --repo github.com/northwind/api✓ scaffolding Dockerfile, CI, .env.example✓ image build ghcr.io/northwind/api:2.14.2✓ secrets 6 keys matched .env.example✓ release PR #204 opened for review→ waiting on your approval to promotenorthwind-api · staging → production
The gap
Claude Code can take a feature from idea to working code in an afternoon. Then it sits on a branch while somebody figures out Dockerfiles, a registry, secrets management, ingress, TLS, probes, autoscaling, alerting and who gets paged at 3am. The bottleneck moved — most platforms still solve the old one.
Without a platform
With Meerkat
How it works
You install a GitHub App. Everything after that happens as pull requests in your own repository — which means you can read, review and revert all of it.
Install the Blank Cut App on a repo you already have — or let us create a private one in your account, seeded with a runnable Next.js or Vite starter.
Your account. Your code. Always.We open a pull request adding what's missing: a multi-stage Dockerfile, the build workflow, a deploy manifest, and .env.example declaring the keys your app may read.
Nothing touches your default branch.Each promotion becomes one reviewable change to the deployment config. Approve it and the image rolls out through ArgoCD with probes, resource floors and a rollback path.
No kubectl. No console clicking.Cluster health, pod restarts, log tail, alert routing and spend — all of it in one place, scoped to your apps.
Live via SSE.For Claude Code users
Every repo we scaffold ships with a CLAUDE.md describing the platform's conventions — where config lives, how secrets are declared, what the health endpoint must return, how a release is cut. Point Claude Code at the folder and it builds inside those rails instead of inventing its own deployment story every session.
Conventions written down, not tribal
The same file your agent reads is the one your new hire reads.
Agent-authored changes still get reviewed
A PR is a PR, whoever typed it.
Secrets stay out of the context window
Values live in the platform store; the repo only names the keys.
# northwind-api## DeploymentThis app runs as a container on the Blank Cutplatform. Do not add Helm charts, raw k8smanifests, or a second CI system.## ConfigEvery key the app reads MUST be declared in.env.example. That file is the allowlist —an undeclared key is unavailable at runtime.## HealthGET /health returns 200 + {"status":"ok"}once dependencies are reachable.## Releasingblankcut promote --app northwind-apiOpens a reviewed deploy change.
Security, not security theatre
Guardrails you have to remember aren't guardrails. Ours are load-bearing: there is no way to ship that skips them, because shipping is the pipeline.
Values live in an encrypted platform store, injected at runtime. Your .env.example declares which keys are even permitted — an undeclared key simply is not available.
Rotate without a redeployDeploys are diffs against the deployment config, not imperative commands. Approvals, authorship and rollbacks are all in git history.
Full audit trail by constructionMulti-stage builds on a slim runtime, digest-pinned so what you reviewed is what runs. No 'latest' tags in production.
Reproducible by digestEvery customer gets their own namespaces with network policy, resource quotas and separate credentials. Cross-tenant access is not a setting you can misconfigure.
Namespace-scoped RBACCluster and app health stream into Meerkat. Critical alerts route to the platform team; warnings batch. Thresholds are cluster defaults tenants can tighten but not loosen.
Alert rules evaluated continuouslyThe repo is in your GitHub from day one, and the container is a standard OCI image. If you leave, you keep a working app — nothing to extract.
Leave whenever. Take everything.Two ways to work
Nothing in the platform is UI-only or CLI-only. Pick the surface that suits you; your teammate can pick the other one on the same app.
Guided flows, no terminal required
A short interview picks your path, then wizards handle GitHub, the starter repo, the database and the first deploy. Claude Code writes the app; we run it.
One binary, scriptable end to end
Install the CLI, point it at a repo, and drive the whole pipeline from your shell — including the parts the wizard walks you through.
blankcut promote --repo <url>blankcut provision --stack nextjsblankcut secrets push --app <app>blankcut status --app <app>Who it's for
TodayFeatures land in hours and then queue behind infra work nobody owns. Each session your agent invents a slightly different deployment.
With usA scaffolded repo with a CLAUDE.md your agent obeys, and one command from branch to reviewed production release.
TodaySomeone hand-holds every release. Deploys happen when that person is awake and not on holiday.
With usBuild, promote and roll back are automated and reviewable. The pipeline is the process — not a person.
TodayYou know the audit is coming and the honest answer to "where do secrets live?" is a pinned Slack message.
With usEncrypted secret store, key allowlisting, tenant isolation, digest-pinned images and a git audit trail — on by default, day one.
TodayA prototype needs to be real by Friday and there's no time to stand up a platform first.
With usConnect GitHub, merge the scaffolding PR, approve the release. That's the whole path.
TodayYour best product engineer is a part-time reluctant SRE, and the bus factor is one.
With usThe platform team is us. Cluster health, patching and alert routing are ours; your app is yours.
TodayEvery engagement rebuilds the same pipeline, and handover means untangling your accounts from theirs.
With usEach client is a tenant with their own namespaces, billing and portal — and their repo already lives in their GitHub.
Pricing
Compute is metered hourly against an included quota; databases, domains and storage are per-unit. Every invoice breaks down where it went — no seat maths, no surprise egress line.
Single-deployment apps. For a prototype that needs to be real.
556 CPU-hr
included, then $0.000050/CPU-sec
Multi-deployment, moderate scale. The usual starting point.
1,667 CPU-hr
included, then $0.000045/CPU-sec
Production-grade, multi-namespace workloads.
4,167 CPU-hr
included, then $0.000040/CPU-sec
High-capacity or regulated workloads, priced per engagement.
Per-customer metered rates.
All plans: metered overage past the included quota, billed at period end. Cancel any time — the repo and image are already yours.
Questions
In your GitHub account, from the first minute. We connect through a GitHub App you install and can revoke; we never host your repository. If you stop paying us tomorrow you still have a working, buildable app.
No — and you shouldn't have to. Underneath it's Kubernetes with ArgoCD, and you can see all of it in the console if you want to. But the surface you work with is a repo, a pull request and a promote button.
Then the scaffolding PR writes one — multi-stage, slim runtime — along with the build workflow, deploy manifest and .env.example. You review it like any other pull request.
Values are stored encrypted on the platform and injected at runtime. Which keys are permitted is declared by .env.example in your repo — that file is the allowlist, so an undeclared key is unavailable even if someone sets it. Nothing sensitive is ever committed.
It can open pull requests, which is exactly as much power as any teammate has. Promotion needs an approval, releases are diffs, and rollback is one action. The CLAUDE.md in the repo keeps its suggestions inside the platform's architecture in the first place.
You take the repo, the image and the manifests — all standard, all already in your possession. We'd rather be left cleanly than hold anyone hostage.
Connect a repo and watch the scaffolding pull request open. No card, no sales call, and nothing lands on your default branch until you merge it.