●  New: build your backend and app together with AI. Point Claude or Cursor at AppAmbit over MCP.

On mobile?

Email yourself the setup link so you can finish when you're at your computer.

Cloud Code

Ship backend logic. No servers to run.

Write a Node.js function, deploy it inside AppAmbit, and call it from your app. It reaches your database, push and CMS through one authenticated ctx, and scales on its own. Manage it in your dashboard, or let your AI Agent write and deploy it over MCP.

Read the docs

Pairs with your App Database and push notifications. No infrastructure to maintain.

create_post · handler.js
Draft Building Active
// create_post (HTTP trigger)export const handler = async (ctx) => {  const { title, content } = ctx.req.body;  if (!title) return {    status: 400, body: { error: 'title is required' },  };  const createdAt = new Date().toISOString();  const { results } = await ctx.appambit.db(    'INSERT INTO posts (title, content, created_at)'    + ' VALUES (?, ?, ?) RETURNING id',    [title, content, createdAt],  );  const id = results[0].rows[0].id;  return { post: { id, title, content, createdAt } };};
POST /api/fn/create_post 38 ms
{ post: { id: 812, title: "Hello world" } }
200 · saved and returned

Deploy a version, activate it, call it. That is the whole loop.

Node.js

Write a handler, deploy it, call it.

Zero

Servers to provision or patch.

Auto

Scales up under load, to zero when idle.

One bill

Usage counts toward your AppAmbit bill.

Your AI Agent, on your backend

Describe the endpoint. It deploys itself.

Write and deploy a function yourself in your AppAmbit dashboard, or ask your AI Agent to do it over MCP. It creates the function, deploys a version, waits for the build, and activates it, then hands you a live endpoint.

Prefer to click? Do the same from the AppAmbit dashboard: create, deploy, activate and read logs for every function.

cloud code over MCP

you › Add an endpoint so users can publish a post.

→ appambit.cloud_code.deploy(name: "create_post", trigger: "http")

Created create_post draft
Built version 1 ready
Activated /api/fn/create_post live

Live at /api/fn/create_post. Call it from your app, or run it right here.

Read the docs
One authenticated ctx

Your whole backend, already wired in.

Every function receives one ctx object. Through ctx.appambit you reach your data, push and content with no connection strings and no secrets in your code: each call is authenticated and scoped to your app for you.

Your App Database
ctx.appambit.db()

Run parameterized SQL against your app database. No connection string, no credentials: the call is the connection, scoped to this app.

App Database →
Atomic writes
ctx.appambit.batch()

Run many statements at once, and wrap them in a transaction so they all land or none do.

Push notifications
ctx.appambit.push()

Send a push with a plain title and body. AppAmbit builds the FCM and APNs payload for each device.

Push notifications →
CMS
ctx.appambit.cms

List, read and publish content entries from inside a function, with the same app-scoped access.

CMS →
Env and secrets
ctx.env · ctx.secrets

Config values arrive on ctx.env, secrets on ctx.secrets. Secrets are injected at runtime and never echoed back.

Context and logs
ctx.log · ctx.consumer

Read the authenticated consumer and write lines to the invocation log, in your dashboard or over MCP.

What you can build

Real features, a function each.

A Cloud Code function is a small piece of backend that reacts to a trigger and does one job. Here are clear examples, each reading trigger to action.

http → db

Publish a post

An endpoint that validates the title and inserts a post, then returns the saved row.

http → db

Personalized feed

Read your database and return a list built for the signed-in user, in one call.

event → push

Recover abandoned carts

A cart that changes but never checks out fires a reminder push a few steps later.

http → cms

Publish from a webhook

Receive a partner webhook and turn it into a published CMS entry, ready for your app.

secret → db

Call a partner API

Use a stored secret to reach a third-party service, then save the result to your database.

event → db

Validate on save

Check and clean a row as it changes, before the rest of your app ever reads it.

From draft to live

Deploy a version. Activate to go live.

Each deploy is an immutable version that builds on its own. Activate one to make it live, and activate an older one whenever you need to roll back. No downtime, no redeploy.

STEP 01

Create a function

A new function starts as an empty draft, bound to your app.

STEP 02

Deploy a version

Upload your handler. Each deploy is an immutable version that builds on its own.

STEP 03

Activate it

Point the function at a version to make it live. Activate an older one to roll back at once.

STEP 04

Trigger it

Call it from your app, fire it on a data change, or run it by hand to test.

Three ways to trigger it

HTTP POST /api/fn/{slug}

Call it over HTTP from your app. The request lands on ctx.req.

Event on database or CMS change

React to a data change. The change lands on ctx.event.

Manual run to test

Invoke the active version by hand while you build.

In your dashboard

Every deploy is a version.

The dashboard keeps the full history. See which version is live, review each build, and activate any earlier one to roll back the moment something looks wrong.

Immutable, checksummed versions you can trust
One click to activate a version or roll back
Build status shown before a version goes live
create_post · Versions
Active
Runtime Node.js Memory 128 MB Timeout 10000 ms Identity Run as app
Version Active Build
v4 Ready live
v3 Ready Activate
v2 Ready Activate
v1 Ready Activate

Activate any version to roll back instantly. No redeploy.

Safe by default

Powerful code, on a short leash.

Your function reaches your backend, and nothing else. No standing keys, no way out of your own app, and hard limits on every run.

App-scoped by default

Every ctx.appambit call is authenticated and limited to your app. No connection strings or keys live in your code.

No standing credentials

Functions run with a short-lived token. There are no ambient cloud keys and nothing secret written to disk.

Bounded runs

Each function has a memory size, a timeout, and per-app rate limits, so a runaway loop cannot run away with your bill.

Why teams use it

Backend logic, without the backend.

No servers, ever

Write a Node.js handler and deploy it. There is nothing to provision, patch, or keep running.

Scales on its own

Functions scale up under load and back to zero when idle. You set memory and a timeout, AppAmbit runs the rest.

Versioned deploys

Every deploy is an immutable version, so you can activate an older one and roll back in one step.

Wired to your backend

Reach your database, push, and CMS through ctx.appambit, all authenticated and scoped to your app.

App Database →

Env and secrets

Keep API keys and config out of your code. Secrets are injected at runtime and never logged back.

Run it, or your AI Agent does

Deploy, activate and run from your dashboard, or let your AI Agent do it over MCP.

MCP Agent →
Call it from your app

One call, every platform.

Once the function is deployed and active, call it by its slug with CloudCode.call, on iOS, Android, Flutter, React Native, .NET MAUI and Avalonia. The SDK adds the base URL, the auth and the JSON: you pass a body and read response.data. Your map becomes ctx.req.body in the function, and whatever it returns comes back. Full reference is in the docs.

// call your deployed function by its slugCloudCode.call("create_post", body: [  "title": "Hello world",  "content": "My first post",]) { response, error in  guard let response, error == nil else { return }  let post = response.data}
// call your deployed function by its slugCloudCode.call("create_post", mapOf(  "title" to "Hello world",  "content" to "My first post",))  .then { response ->    val post = response.data  }  .onError { error -> }
// call your deployed function by its slugfinal req = CloudCode.call('create_post', body: {  'title': 'Hello world',  'content': 'My first post',});final res = await req.future;final post = res.data;
import { CloudCode } from "appambit"; const res = await CloudCode.call("create_post", {  body: { title: "Hello world", content: "My first post" },});const post = res.data;
// call your deployed function by its slugvar res = await CloudCode.Call("create_post",  body: new { title = "Hello world",            content = "My first post" });var post = res.Data;
// call your deployed function by its slugvar res = await CloudCode.Call("create_post",  body: new { title = "Hello world",            content = "My first post" });var post = res.Data;
Request
POST /api/fn/create_post
{ title: "Hello world", content: "My first post" }
Response · 200
{ post: {
  id: 812, title: "Hello world",
  content: "My first post",
  createdAt: "2026-09-07T18:24:11Z"
} }
Saved to your database
Questions

Cloud Code, answered.

What language are functions written in?
Node.js. Each function exports a single async handler that takes one ctx argument and returns a JSON-serializable result. More runtimes are planned.
Do I manage any servers or scaling?
No. Functions scale up under load and down to zero when idle. You set a memory size and a timeout, and AppAmbit runs everything else.
How do I call a function?
Over HTTP at /api/fn/your-function with the consumer token your app already holds, on a database or CMS change, or a manual run to test. Manage every function, version and log in your dashboard, or over MCP with your AI Agent.
Can I roll back a bad deploy?
Yes. Every deploy is an immutable, checksummed version. Activate any earlier version from the dashboard and it goes live again at once, with no redeploy.
How does it reach my database or push?
Through ctx.appambit. There is no connection string or credential in your code: the call is authenticated and scoped to your app for you. Pairs with your App Database and push notifications.
How is it billed?
Usage-based: compute time and invocations count toward the same AppAmbit bill, with no separate infrastructure to pay for.
Ready when you are

Ship backend logic today. No servers required.

Start free and deploy your first function in minutes. Write it in your dashboard, or let your AI Agent do it over MCP. No credit card required.

Already have an account? Log in

Deploy backend logic, no servers.