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

# Starter website

> Clone a ready-made Next.js site that's already wired into Sapt — analytics, lead capture, and a booking funnel work from a single Project ID.

The fastest way to ship a Sapt-powered site is not to build the plumbing yourself. **[sample-website](https://github.com/sapt-ai-org/sample-website)** is a public, MIT-licensed Next.js starter that already has Sapt wired in: first-party analytics, lead capture, and a booking funnel all light up from a **single Project ID**. Clone it, point it at your project, and you're live in a few minutes.

<Note>
  **Repo:** [github.com/sapt-ai-org/sample-website](https://github.com/sapt-ai-org/sample-website) — MIT licensed, clone and ship. Rename it, restyle it, make it the client's.
</Note>

## Quick start

```bash theme={null}
git clone https://github.com/sapt-ai-org/sample-website.git
cd sample-website
pnpm install

# Point it at your project — this one value is the whole setup.
echo "NEXT_PUBLIC_SAPT_PROJECT_ID=your_project_id" > .env.local

pnpm dev
```

Grab your Project ID from the Sapt dashboard. That's the only required value — no `.npmrc`, no hidden dependencies, no API key needed to get the core experience running.

## What the Project ID powers

`NEXT_PUBLIC_SAPT_PROJECT_ID` is the one knob that turns the site live. With just that set, you get:

| Feature            | What it does                                                                                                               |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------- |
| **Analytics**      | First-party pageviews and events flow into your dashboard. See [First-party analytics](/docs/mintlify/analytics/overview). |
| **Lead capture**   | Form submissions land as CRM People on your project.                                                                       |
| **Booking funnel** | The multi-step booking flow captures and qualifies leads end to end.                                                       |

## Optional: CMS & branding

Add two more values to pull live content and brand styling from Sapt instead of hardcoding them:

```bash theme={null}
SAPT_API_KEY=sapt_your_api_key   # server-side reads for CMS + branding
# plus the feature flags documented in the repo README
```

With these set, the site reads its copy, imagery, and brand tokens (colors, fonts, logo) from your project — so non-developers can update the site from the Sapt dashboard. Leave them out and the site runs fine on its built-in defaults.

## Customizing

| Knob                         | Where                                                                                                   |
| ---------------------------- | ------------------------------------------------------------------------------------------------------- |
| **Site content & layout**    | `site-config.ts` — the single config file. Turbopack hot-reloads it instantly, so point designers here. |
| **Worker name (per client)** | `wrangler.jsonc` defaults the deploy name to `sample-website` — rename it per client before you deploy. |
| **Styling**                  | Standard Next.js + Tailwind. Restyle freely; it's your repo.                                            |

## Keep going

<CardGroup cols={2}>
  <Card title="First-party analytics" href="/docs/mintlify/analytics/overview" description="The tracking the starter already wires in — and how to serve it from your own domain." />

  <Card title="CMS" href="/docs/mintlify/platform/cms" description="Manage the site's content from Sapt once you add an API key." />

  <Card title="Onboarding funnels" href="/docs/mintlify/api/onboarding-funnels" description="Spin up a configured client project for each site over the REST API." />
</CardGroup>
