# Examples

> Three small open-source apps that run on MDRN, and the two ways to start a project from one: Deploy this in the console, or mdrn init --example from the CLI.
> Source: https://mdrn.io/docs/examples/

When you are done you have your own copy of an example app, deployed to a Sandbox deployment of your project, with its source in a directory or repository you can change. Every example is open source, in [github.com/mdrn-io/examples](https://github.com/mdrn-io/examples), one folder each. The [examples page](/examples/) lists them with their source and a **Deploy this** button.

## The examples

| Example | Slug | What it is | Products |
| --- | --- | --- | --- |
| SaaS starter | `saas-starter` | Sign-in, teams and settings. | Auth, Postgres, SQLite, Mail |
| API with file uploads | `files-api` | A backend for a web or mobile app: per-user records, uploads and downloads, mail. | Auth, SQLite, Objects, Mail |
| Link shortener | `link-shortener` | Short links with sign-in. An AI agent wrote it from one prompt. Its folder keeps the prompt (`PROMPT.md`) and the agent's account of the run (`BUILT-BY-AN-AGENT.md`). | SQLite |

All three deploy in [build mode](/docs/billing/#build-mode) as they are. Build mode is SQLite only, so the SaaS starter keeps its data in SQLite until the workspace goes live, and in Postgres from then on.

## Start from the console

Open the [examples page](/examples/) and choose **Deploy this** on an example. The console signs you in if you are signed out, then shows the example; choose **Deploy** there to start a project from it. Build mode's limits apply as to any project ([build mode](/docs/billing/#build-mode)).

```text
https://console.mdrn.io/new?example=<slug>
```

## Start from the CLI

`init` with `--example` copies the example's folder into a new directory and drops its history, so the directory starts as your own. Deploy it as in the [Quickstart](/docs/quickstart/), from step 5.

```sh
npx @mdrnio/cli init my-app --example <slug>
```

```sh
cd my-app && npx @mdrnio/cli deploy
```

The first `deploy` creates the deployment and links the directory. A build or a refusal that stops it is explained on [Deploy](/docs/deploy/) and [Error codes](/docs/errors/).
