> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tappify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# The dev server

> Serve your extension while you edit it, with types regenerated on every manifest change.

`tappify extension dev` serves your remote entry on a local port, writes `src/tappify.d.ts` from
the manifest, and prints the URL that renders it.

```bash theme={null}
tappify extension dev
```

Two lines come back: what is being served, and where to open it.

```
Serving starter on http://localhost:5273/remoteEntry.js.
Open https://developers.tappify.ai/extensions/starter/preview?remote=… to see it in the portal preview.
```

## Flags

| Flag             | Does                                                                     |
| ---------------- | ------------------------------------------------------------------------ |
| `--port <port>`  | Port the dev server listens on. Defaults to 5273                         |
| `--live`         | Also installs this build on your sandbox project and prints the host URL |
| `--server <url>` | The base URL Tappify calls for your procedures during the session        |
| `--remote <url>` | Previews a deployed remote entry instead of starting a local server      |

## While it runs

Editing a component reloads it in whichever surface you have open. Editing
`tappify.extension.json` rewrites the generated types and says so, so a new storage collection
or procedure is typed before you use it.

```
tappify.extension.json changed; rewrote src/tappify.d.ts.
```

With `--remote` no local server starts, so nothing reloads: the session renders the build at the
URL you named until you stop it.

Ctrl+C closes the watcher. When `--live` was used it also ends the dev session — the sandbox
install is paused and its local URL cleared — so a dead port never loads on your sandbox project
afterwards.

## Which surface to open

<CardGroup cols={2}>
  <Card title="Preview in the portal" icon="window" href="/extensions/test/preview-in-the-portal">
    No install, fixture data, one contribution at a time.
  </Card>

  <Card title="Live preview in your sandbox" icon="rocket" href="/extensions/test/live-preview">
    The real host page, real data, your sandbox project.
  </Card>
</CardGroup>
