Skip to content
Subnomic

Ship a site, store the bytes, push the image.

One workspace for hosted static sites, S3-compatible object storage and a container registry, with Runa, an assistant that can act across them and shows every step it takes. One bill, one set of credentials, one audit log.

Free plan
No card, no expiry
Storage API
S3-compatible
Registry API
OCI distribution

Sites

Static hosting with a real rollback

Push a directory, get a URL. Every deployment keeps its own immutable preview address, so rolling back is promoting a deployment that already exists rather than rebuilding the one that worked.

  • Your own domain with two DNS records, a CNAME to cname.subnomic.app, and the certificate follows.
  • Per-deployment redirects and headers, versioned with the files they apply to.
  • Traffic counted without a cookie, a visitor identity or a third party.
Look at Sites
$ subnomic sites deploy --prod
Hashing 148 files (18.7 MB)
134 already stored, 14 to upload
https://blog.subnomic.app

Storage

S3-compatible object storage

The endpoint and the key are the product, so they are the first thing on the page rather than four clicks in. Any client that speaks S3 speaks to this: the AWS CLI, rclone, restic, the SDK you already have in the repository.

  • Versioning and object lock, with the locked window stated in days on the object itself.
  • Access keys scoped to buckets, a prefix and read, write or delete, with the secret shown once.
  • A bucket anyone can read wears this wherever it is listed:Public, no credential needed
Look at Storage
$ aws --endpoint-url https://objects.subnomic.com s3 ls
2026-10-03 09:12:44 acme-db-dumps
2026-09-16 14:30:02 acme-cdn
$ aws --endpoint-url https://objects.subnomic.com s3 cp dump.sql.gz s3://acme-db-dumps/
upload: ./dump.sql.gz to s3://acme-db-dumps/dump.sql.gz

Registry

A private OCI registry that scans

docker login and you are done. What is signed, what is vulnerable and which version fixes it is readable from the list, not behind a tab somebody has to remember to open.

  • Every push is scanned, and each finding names the version that fixes it.
  • Cosign signatures are recognised as signatures, not listed as stray tags.
  • Robot accounts for CI, scoped to one repository and revocable on their own.
Look at Registry
$ docker login registry.subnomic.com -u acme
Login Succeeded
$ docker push registry.subnomic.com/acme/api:1.4.1
The push refers to repository [registry.subnomic.com/acme/api]
1.4.1: digest: sha256:9f3a71c2e4b8 size: 1789
TagScanSignatureFix
acme/api:1.4.13 highSignedNewest
acme/api:1.4.02 criticalSignedBoth fixed in 1.4.1

Runa

An assistant with your workspace in reach

Ask it a question about the workspace and it reads the workspace to answer. Every tool call is shown with the real arguments it was called with, and it never holds more permission than the person who gave it access.

  • It reaches only what its access is scoped to, through the same guardrails you go through.
  • Every call lands in the audit trail with its arguments.
  • Press ⌘J on any screen and that screen is already pinned.
Look at Runa

Why does api in prod-eu keep restarting?

crashloop_report namespace=prod
kube_logs pod=api-7d9f5c-x2k8q previous=true
rollout_restart deploy/api Waiting for you
Held for a personuntil somebody approves it

The previous container ran out of memory on start. The restart was proposed from the incident, and it runs only after somebody approves it.

Workflows

The four of them, wired together

Draw a graph of the things you already let people do by hand, read a database, restart a deployment, ask a person, and run it on a schedule, a webhook or a button. Each workflow runs as its own credential, so it can never reach further than whoever wrote it.

  • A run survives the worker that started it: succeeded steps are not run twice.
  • Anything that changes something can stop and wait for a person, and editing the graph asks for approval again.
  • Describe it in a sentence and the graph is drawn for you, on the canvas, where you can argue with it.
Look at Workflows

When the servers are yours too

The same workspace grows a second tier: your own servers and Kubernetes clusters, reached through an agent that opens no inbound port. Servers start on Pro, guardrails and session recording come with Team, and just-in-time access with Enterprise.

Before you sign up

Can I leave?

Storage is S3 and the registry is the OCI distribution API, so leaving is aws s3 sync and docker pull, the same two commands you would have used anyway. That is the point of standard APIs.

What does the AI actually see?

Only what its access is scoped to, never more than the person who created that access can do, and every step is shown with its arguments. A guardrail that requires approval refuses the call instead of running it.

Is the free plan a trial?

No. It needs no card and does not expire: one site, 512 MB of storage, one member. Reaching a limit never deletes anything already stored.

Do I have to use all four?

No. Most workspaces start with one. The others are there when you need them, on the same bill and behind the same credential.

Who can see what?

Roles are per workspace, sessions are listed and revocable one at a time, and anything a stranger can reach without a credential wears hazard tape, so you find it by looking.

A workspace, an endpoint and a namespace, about a second from now.

Signing up creates the workspace and shows the registry address your images will push to before it does. The free plan needs no card.