# Code

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

> The startup-builder framework and platform, where a Startup is files compiled by five Builders into a business with an API, SDK, CLI and MCP server.

[StartupBuilder](/code/builders/startup) builds a business as code. A `startup.ts` and a few folders compile into a running [Startup](/business/nouns/startup), with an API, SDK, CLI and MCP server for every [Verb](/business/nouns/verb).

```bash
npm create startups
```

## Three ways in
| You have | Start with |
| --- | --- |
| Nothing yet | [Getting started](/code/getting-started): `npm create startups` to a deployed Startup that takes a test payment |
| A Startup built on [startups.new](/start/startups-new) | Its repository. [Repositories](/code/systems/repositories) mirrors it to GitHub; clone the mirror and run `npx startup-builder dev` |
| A Startup and a key | Call it from your own code: [API](/code/api), [SDK](/code/sdk), [CLI](/code/cli) or [MCP](/code/mcp) |
| A coding agent | [Build with a coding agent](/code/build-with-a-coding-agent) |

## One file, one business
```ts title="startup.ts"
import { Startup } from 'startup-builder'

export default Startup({
  name: 'Leaseline',
  domain: 'leaseline.app',
  extends: 'solo-saas',
  idea: 'Small property managers pay to never miss a lease renewal.',
  offers: {
    pro: {
      price: { amount: 29, currency: 'USD' },
      interval: 'month',
      terms: 'Every renewal noticed at 60 days.',
    },
  },
})
```

Each line is read by one [Builder](/business/nouns/builder), and everything the file leaves out comes from the [Startup Template](/business/nouns/startup-template):

| Line | Builder | Compiles to |
| --- | --- | --- |
| `extends: 'solo-saas'` | [StartupBuilder](/code/builders/startup) | [Teams](/business/nouns/team), a role agent in every seat, [Processes](/business/nouns/process) and [Workflows](/business/nouns/workflow), [Settings](/business/nouns/setting) |
| `domain` | [SiteBuilder](/code/builders/site) | A [Site](/business/nouns/site) at `leaseline.app` with pricing, terms and sign-in |
| `offers.pro` | [SalesBuilder](/code/builders/sales) | An [Offer](/business/nouns/offer) and its [Price](/business/nouns/price), the Stripe objects behind them, checkout, a billing portal |
| Every inherited [Noun](/business/nouns/noun) | [SoftwareBuilder](/code/builders/software) | `api.sb/leaseline.app`, typed `$`, CLI operations, MCP tools, an [App](/business/nouns/app) |

[Builders as compilers](/code/builders) shows the six steps of one compile.

## One call, every Interface
Every [Interface](/business/nouns/interface) reaches the same [api.sb](/code/platform/api-sb) route: `Order.place` is one operation, with one input and one result.

## The tab
| Part | Holds |
| --- | --- |
| Framework | The [project structure](/code/project-structure), [`startup.ts`](/code/startup-ts), every [file convention](/code/file-conventions), the [Builders](/code/builders) and [routing](/code/routing) |
| Platform | [Database, auth, storage, functions and realtime](/code/platform), and [Stripe](/code/platform/stripe) underneath every charge |
| [Interfaces](/business/nouns/interface) | [API](/code/api), [SDK](/code/sdk), [CLI](/code/cli), [MCP](/code/mcp), [UI components](/code/ui) |
| Ship | [Ship my changes](/code/ship-my-changes), the [CLI in CI](/code/cli/guides/ci), [verification](/code/verification) |
| For agents | [docs for agents](/start/docs-for-agents), [/llms.txt](/llms.txt), [/asks.json](/asks.json), the [agent files](/code/file-conventions/agent-files) |

## Guides
What a founder says to their agent, and the guide that does it.

| You say | Guide | Calls | Status |
| --- | --- | --- | --- |
| `Ship my changes` | [Ship my changes](/code/ship-my-changes) | [Change.review](/business/nouns/change/review), [Change.merge](/business/nouns/change/merge), [Version.deploy](/business/nouns/version/deploy) | `live` |