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 need | Use |
|---|---|
| Store and protect app data | Collections and access rules |
| Sign users in | Authentication and wallets |
| Run backend code and scheduled jobs | Functions |
| Call AI models and external services | AI and services |
| Update screens live or build multiplayer rooms | Realtime |
| Upload files and search content | Files and search |
| Create and manage apps from your backend | App management with ctx.apps |
| Use tokens, wallets, escrow, and DeFi | Solana |
| Accept payments from users | Payments |
| Publish a web app at your own address | Hosting and domains |
| Connect a mobile app | React Native |
Your app has three parts
- Frontend: the screens people use. Build a web app or a React Native app with the Bounded client SDK.
- Backend: your data, access rules, and server code. Describe data and rules in
policy.json. Add TypeScript Functions when you need code. - Hosting: the place your web app runs. Publish your built frontend on a
bounded.pageaddress or a custom domain.
Build, check, and deploy
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-sourceReplace <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.