What ox does for you.

Nine things ox takes care of, all on a server you own, so you can keep writing the app.

01

Push to deploy, with no downtime.

Push to GitHub and ox deploys the new commit to your server. Each push is built and health-checked before traffic switches over, and the release before it stays kept for an instant rollback.

A push going live A commit moves through push, build, check and switch. The live marker then moves from release 41 to release 42, and release 41 stays kept for rollback. pushbuildcheckswitch release 41kept for undo release 42passed its check live

02

Any stack, detected.

Node, Python, Go, Rust, PHP, Ruby, Java, .NET, Elixir or a static site: ox reads your repo and shows its plan. A simple app needs no config; a bigger one, with workers, scheduled jobs or a build ox can't guess, needs a short ox.toml. Each stack has a deploy guide.

Repo files turned into a plan Four project files, package.json, pyproject.toml, go.mod and Cargo.toml, are read one at a time, and a detected plan card shows the runtime, build and start command for each, with no ox.toml needed. package.jsonpyproject.tomlgo.modCargo.toml Detected plan runtimebuildstart Node.jsnpm run buildnpm start Pythonuv syncgunicorn app Gogo build./app Rustcargo build./app no ox.toml needed

03

On a server you own.

Use any cloud or VPS and pay your cloud company as you would anyway; ox adds only a small agent that dials out, so the agent needs no open port and ox holds no SSH key. How ox self-hosts your apps shows what runs on your server and how.

ox and your server ox Cloud on the left, your server on the right. The small ox agent on your server dials out to ox over one encrypted line, so the agent needs no open port and ox holds no SSH key. ox Cloud dials out no SSH key agent your server

04

Staging and previews, in one project.

Switch between production, staging and branch previews, open a preview from its pull request, and promote staging to production in one step. Previews are off until you turn them on for a project.

Branches becoming environments The main, staging and new-login branches each get their own environment with a web address: production at myapp.com, staging at staging.myapp.com, and a preview for new-login. Staging is then promoted to production. mainstaging new-login Productionmyapp.com Stagingstaging.myapp.com Preview: new-loginmyapp-new-login.example.dev promote

05

Services, set up for you.

The databases and stores your app declares are created, connected and backed up every day, shared or private, and you can restore any backup from the dashboard.

Services snapping into place Your app connects to three services it declared, one shared, one private and one custom, and a clock marks the daily backup that each can be restored from. your app sharedprivatecustom daily backup restore any day

06

Look into your data.

Browse tables, keys and collections and run read-only queries from the dashboard; the data is read on your server and never stored by ox.

Browsing a table A table of rows in the Browse tab, marked read-only, with a highlight moving down the rows as they are read. Browse Query read-only idnameupdated

07

Variables with history and undo.

Edit one table or paste a .env, see the diff, then save and deploy now or later; values stay hidden, and any of the last 20 versions comes back.

Changing a variable, then undoing it A table of variables with hidden values. A new variable is added and shows as one change to save, then an undo brings back the earlier version. Variables +1 to save back to v19 DATABASE_URLSECRET_KEYSTRIPE_KEYAPP_ENV •••••••••••••••••••••••••••••••••••••••••••••••• MAIL_FROM••••••••••••

08

Alerts, uptime and webhooks.

Your site is checked every minute, an email tells you about failures and high CPU, memory or disk, and signed webhooks reach your own tools.

A spike becoming an alert An uptime badge checked every minute above a memory chart. The line spikes past the limit, an alert card says memory is high and that you were emailed, and a signed event travels to your own tools. up · checked every minute limit Memory high emailed you signed your tools

09

A CLI for you and your AI.

Everything in the dashboard is one ox command with --json, and a skill you paste into your coding agent teaches it the rest.

Deploying from the terminal A terminal runs ox deploy my-app --wait. Lines stream in: built, health check passed, switched with no requests dropped, then live at myapp.com. ~/my-app $ ox deploy my-app --wait → built in 38s → health check passed → switched, 0 requests dropped live at myapp.com # every command takes --json

ox looks after the server
while you build the app.

Put your next app on a server you own.

Free for your first project, no card needed.