---
title: Web
icon: globe
description: Set up and run the Reloop marketing web app locally.
---
> For the complete documentation index, see [llms-docs.txt](/llms-docs.txt) or the site index [llms.txt](/llms.txt). Full docs corpus: [llms-full-docs.txt](/llms-full-docs.txt). Prefer markdown URLs (append `.md`) for agent consumption. Product skill: [skill.md](/skill.md).


Public marketing site — landing pages, pricing, and product content.

<Tip>
Run [`bun setup`](/docs/setup) once from the monorepo root before starting individual apps.
</Tip>


## Overview

| Property | Value |
| :--- | :--- |
| **Directory** | `apps/frontend/web` |
| **Port** | `3000` |
| **Local URL** | [https://local.reloop.sh](https://local.reloop.sh) |
| **Direct URL** | [http://localhost:3000](http://localhost:3000) |
| **Stack** | Next.js · React 19 · Tailwind CSS |


## Quick start

From the monorepo root (after [`bun setup`](/docs/setup)):

```bash
bun fe:web:dev
```

Or start every frontend together:

```bash
bun frontend:dev
```

Turbopack serves the app on port `3000`. Prefer [https://local.reloop.sh](https://local.reloop.sh) when Caddy is running.

<Warning>
Use `https://local.reloop.sh`, not `localhost:3000`, when testing flows that share cookies or link into the dashboard.
</Warning>


## Environment

Committed local defaults live in `apps/frontend/web/.env` (and `.env.dev`). Fresh clones already have them; `bun env:setup` / `bun setup` recreate or merge missing keys.

```bash
NEXT_PUBLIC_URL=https://local.reloop.sh
# Must match TRACKING_SECRET in the mail backend and REDIRECT_SECRET in auth/email backends
REDIRECT_SECRET=reloop_tracking_secret_default_123

# Rybbit analytics (optional)
NEXT_PUBLIC_RYBBIT_HOST=https://app.rybbit.io
NEXT_PUBLIC_RYBBIT_SITE_ID=reloop-web
```

| Variable | Required | Default |
| :--- | :--- | :--- |
| `NEXT_PUBLIC_URL` | No | `https://reloop.sh` — canonical site URL for metadata and OG tags |
| `REDIRECT_SECRET` | No | Shared redirect/tracking secret for local mail links |
| `NEXT_PUBLIC_RYBBIT_HOST` | No | Rybbit analytics host |
| `NEXT_PUBLIC_RYBBIT_SITE_ID` | No | Rybbit site identifier |


## Commands

| Command | Description |
| :--- | :--- |
| `bun fe:web:dev` | Start dev server with Turbopack |
| `bun run --filter=fe-web build` | Compile production bundle |
| `bun run --filter=fe-web start` | Run production build |
| `bun run --filter=fe-web lint` | Run ESLint checks |


## Next

<CardGroup cols={2}>
  <Card icon="rocket" title="Setup" href="/setup">
    One-command local bootstrap
  </Card>
  <Card icon="globe" title="Port reference" href="/setup/port">
    Gateway routes and ports
  </Card>
</CardGroup>
