01Docs

What is Bounded?

Bounded is a cloud platform for building and running your app. It brings your database, sign-in, backend code, AI, files, and web hosting into one place. You can also use it to build apps on Solana.

One place to run your app

You write the app, or ask a coding agent to write it. Bounded runs the services behind it. For many apps, you do not need separate database, authentication, backend, and hosting providers.

For example, a team app can store projects, sign users in, upload files, and show changes live. Its backend can call AI models or send email. A Solana app can also manage tokens and run transactions through policy rules.

You needUse
Store and protect app dataCollections and access rules
Sign users inAuthentication and wallets
Run backend code and scheduled jobsFunctions
Call AI models and external servicesAI and services
Update screens live or build multiplayer roomsRealtime
Upload files and search contentFiles and search
Create and manage apps from your backendApp management with ctx.apps
Use tokens, wallets, escrow, and DeFiSolana
Accept payments from usersPayments
Publish a web app at your own addressHosting and domains
Connect a mobile appReact Native

Your app has three parts

  1. Frontend: the screens people use. Build a web app or a React Native app with the Bounded client SDK.
  2. Backend: your data, access rules, and server code. Describe data and rules in policy.json. Add TypeScript Functions when you need code.
  3. Hosting: the place your web app runs. Publish your built frontend on a bounded.page address or a custom domain.

Build, check, and deploy

A typical web app deployment
bounded init
# Create your frontend and policy.json.
bounded verify
bounded deploy --create --name my-app --with-source
npm run build
bounded site deploy ./dist --app-id <id> --with-source

Replace <id> with the app ID from deployment. The quickstart explains each step.

Set rules your data must follow

An access rule decides who can read or change data. For example, only a project member can edit its tasks.

An invariant is a condition that must remain true when data changes. For example, a spending log can reject an entry that would exceed an hourly budget.

Bounded checks supported policy conditions before deployment. During each write, it enforces the applicable access rules and invariants. If a check fails, it rejects that write. A rejected atomic batch saves none of its requested changes.

These checks cover the conditions in your policy. They do not prove that your frontend, Function code, or external provider is correct. See invariants and verification when you need those guarantees.

Choose where your data lives

Ordinary collections live in Bounded and do not need a blockchain. For Solana apps, mark the collections that must live onchain. One app can use both kinds of collection.

Use Solana for wallets, token transfers, escrow, and supported protocol integrations. Each onchain feature has its own runtime requirements. The Solana guide explains how to check them.