platform

Everything an app needs. Nothing it doesn’t.

Five building blocks your code reaches by name. Plug in only what an app uses, and pay only for what runs.

01Compute

Runs your code

Upload your code and it answers at your app’s own address. Every deploy is kept, so going back is one click.

  • One per app
  • Settings and secrets as env.NAME
  • Roll back to any deployment
Provider:
Cloudflare Workers for Platforms
Billed:
Per request and CPU time used. Nothing while idle.

02Databases

Keeps your data in tables

SQL databases your code reaches by name, as env.DB. Add as many as you need, and look inside with the console.

  • Plain SQL, the kind agents know
  • Named env.DB, env.ORDERS…
  • Query from scripts over HTTP too
Provider:
Cloudflare D1
Billed:
Per row read and written, plus storage.

03File storage

Holds files and images

A bucket for uploads, images and downloads. Visitors upload straight from their browser with short-lived signed links.

  • Files of any size
  • Signed links for uploads
  • A file browser in the dashboard
Provider:
Cloudflare R2
Billed:
Per upload/download and per GB stored.

04Email

Sends from your app’s address

Receipts, sign-ups and notifications, sent from the app’s own address. Send a test from the dashboard first.

  • One line from your code
  • HTML or plain text
  • Each email counts towards its app
Provider:
Cloudflare Email Service
Billed:
Per email sent.

05Sandboxes

Runs any code, safely apart

Private Linux machines with Node, pnpm and git. Write files, run commands, start a dev server and share a live preview.

  • Six sizes, Tiny to Huge
  • Fall asleep when idle
  • Built for AI agents to drive
Provider:
Cloudflare Containers
Billed:
By size, only while running. They fall asleep when idle.

From a prompt to production.

Your agent talks to one API. The API keeps it to what its key allows, and runs everything else for you.

  1. Layer 04

    Your AI agent

    Claude, Cursor or your own, connected over MCP.

  2. Layer 03

    API and keys

    Scoped keys, spending limits and an activity log of every change.

  3. Layer 02

    Your app

    Compute, databases, file storage, email and sandboxes.

  4. Layer 01

    The providers

    Each part runs on a named provider. See who runs what below.

Reached by name. Driven by one API.

Your app’s code finds each part as env.NAME. Everything else, from creating apps to running SQL, is plain HTTP, the SDK or MCP.

import { connectEmail } from '@opencloudport/sdk'

export default {
  async fetch(request, env) {
    const order = await request.json()
    await env.DB.prepare('insert into orders (item) values (?)')
      .bind(order.item).run()
    await connectEmail(env.EMAIL).send({
      to: order.email, subject: 'Thanks for your order', text: '…',
    })
    return Response.json({ ok: true })
  },
}

providers

Today’s providers.

You and your agent talk to one API. Behind it, each service runs on a named provider, so you never need an account with them.

  • Your code reaches each part by name, like env.DB
  • One balance pays for all of them
  • Usage is shown per service, in plain words

This list comes from the code that runs each service, so it always shows what runs right now.

Read about each service
Your agentMCP tools
Your codeAPI and SDK
opencloudport APIOne key, one balance, one place to see it all
  • Computeruns your codeCloudflare Workers for PlatformsBilled by requests · processing time
  • Databasesenv.DBCloudflare D1Billed by database reads · database writes · database size
  • File storageenv.FILESCloudflare R2Billed by stored files · file uploads and changes · file downloads
  • Emailenv.EMAILCloudflare Email ServiceBilled by emails sent
  • SandboxesAPI and toolsCloudflare ContainersBilled by running time, by size

Start with an empty app.

Add compute, a database or a sandbox when you need it. Remove it when you don’t.

  • Prepaid. You can’t spend more than you put in.

  • Yours. Your data stays put, even when a balance runs out.

  • In minutes. From an empty app to live, by asking.