Simple BackendPricingOpen the console

Write a function. Get a URL.
Say who may call it.

A backend for people who do not want a backend. No cloud console, no provisioning, no schema to design before your first write.

Start writing →

Four steps, and then it is running

  1. OneWrite a function in the browser.
  2. TwoPress Run. It executes for real, against your database.
  3. ThreeSave. That is a release, and it is live.
  4. FourCall the URL from your frontend.

This is the whole thing

No schema was declared before that ran. Attributes exist because they were used, and every version of every value is kept — so "what did this look like last Tuesday" is a question with an answer.

(ns contact)

(defn submit [req]
  (db/save! :message {:email (:email (:body req))
                      :body  (:message (:body req))})
  {:status 200 :body {:ok true}})

Who may call it is one line

Not a policy language. One key, four values — anything more expressive belongs inside your function, where it is ordinary code you can read.

ValueWho gets throughFor
:publicAnyone, rate limited by defaultContact form, waitlist
:keyA per-tenant API keyServer-to-server, webhooks
:signed-inYour own signed-in users[not available yet]
:noneNothing externalBackground steps, scheduled work

Every run is on the record

Each invocation stores how long the sandbox, your code and the database each took — separately, because one blended number makes a three-line function look slow — and the exact transaction your code saw. Click a run, see the database as it was.

[Screenshot of the runs log — not captured yet]