Overview
Shovelbase is a hosted backend platform that manages the infrastructure. Your admin account owns an organization, and the organization holds your projects — each a complete stack — Postgres database, Auth, Storage, and Functions — exposed through a REST, Auth, and Storage API your app calls with the shovelbase-js SDK or plain HTTP. Point the SDK at your project's URL and keys and you're running.
A project's base URL is https://<project-ref>.shovelbase.com — the portal proxies each service path to that project's containers. You interact with the platform four ways: the portal UI, the shovelbase CLI, the shovelbase-js SDK inside your app — and your AI client over MCP, which can do everything the portal can.
The mental model
If you've built a backend the traditional way — a web server, an ORM, a pile of CRUD endpoints — the thing to unlearn is that most of that middle layer isn't here. Your database schema is the API: create a table and it's immediately queryable over REST, with no route to write. Access control isn't a check at the top of a handler, it's a policy on the table, so it applies to every query automatically instead of every handler remembering it.
What that leaves you writing is the part that's actually specific to your product. Server-side code becomes the exception rather than the default — edge functions for the things a client genuinely can't be trusted with or that need a secret, rather than a function per table.
| You need to… | Use | Instead of |
|---|---|---|
| Read and write your own data | shovelbase.from('table') in the client | Writing CRUD endpoints |
| Stop users seeing each other's rows | RLS policies | Auth checks in every handler |
| Change the schema | A migration | Clicking in a console and hoping you remember |
| Use a secret API key | An edge function | Shipping the key to the client |
| Do slow work after responding | A queue | Blocking the request |
| Store a file | Storage, with the path in a column | A blob column in Postgres |
| Let an AI client build and operate the backend | Its own MCP endpoint | Pasting SQL out of a chat window |
Organizations, projects & sources
An organization can also hold sources — slimmed-down, shared projects (their own database and functions, no Auth/Storage/Websites of their own) that every project in the org automatically reads from and can call functions on. See Organizations, projects & sources for the full model.
Where to go next
- New here? Start with Quick start.
- Touring the dashboard? See Using the portal.
- Working with an AI client? Connect it to the project's MCP endpoint — it gets these docs and every management operation over one connection.
- Want the whole platform in one worked example? See Hello World: build the whole thing.