# Platform

URL: /code/platform · Id: `page:code/platform`

> The services every Startup runs on, the database, auth, storage, functions and realtime, reached through one typed client.

Every [Startup](/business/nouns/startup) runs on one platform, reached through one typed client, `$`, and the same calls on the API, CLI and MCP. Nothing here needs provisioning: declaring a [Noun](/business/nouns/noun) gives it storage, access rules, functions and a live stream.

## Services
| [Service](/business/nouns/service) | What it does | [Page](/business/nouns/page) |
| --- | --- | --- |
| Database | Every record, [Relationship](/business/nouns/relationship) and [Event](/business/nouns/event), in [db.sb](/code/platform/db-sb), typed by the Nouns | [Database](/code/platform/database) |
| Auth | Who calls, for whom, and by what right, checked before every call | [Auth](/code/platform/auth) |
| Storage | The bytes of every [File](/business/nouns/file), addressed by content hash | [Storage](/code/platform/storage) |
| [Functions](/business/nouns/function) | The code, model call, agent or person behind each [Verb](/business/nouns/verb) | [Functions](/code/platform/functions) |
| Realtime | Events and record changes, pushed as they happen | [Realtime](/code/platform/realtime) |

## One client
```ts
import { $ } from 'startup-builder'

const leases = await $.Lease.list({ where: 'status = active', sort: 'endsOn' })
```

Leaseline declares a `Lease` Noun. The same `$` runs in a browser, a server, a [Workflow](/business/nouns/workflow) and a Verb function. Inside the platform it acts as the [Worker](/business/nouns/worker) running the code.

## More capabilities
Search, queues, schedules, secrets, email, payments and every other capability is listed under [platform capabilities](/code/platform/capabilities).