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

# Developer Quickstart

> Send your first event to RevBridge from a website or from your server, and check that it arrived.

Pick where your events come from. Browsing (page views, products viewed, carts) comes from the website. Orders, sign-ups and history usually come from your server. Most stores use both.

**Website**

**Option 1: let the setup agent install it.** In your project folder, run:

```bash theme={null}
npx @revbridge/setup
```

**1. Confirm the project**

The CLI detects Next.js (App Router or Pages Router), React (Vite or Create React App) or a server-rendered HTML site. Nothing changes until you confirm.

**2. Sign in**

Your browser opens the RevBridge sign-in. Your organization's publishable key comes from your account, so there is nothing to copy.

**3. Review the changes**

The agent installs `@revbridge/web-sdk`, starts it once, adds `identify` on login and `reset` on logout, and adds commerce events only if the site sells something. It then runs your typecheck and build and shows a report. At the end it offers to put the changes on a `revbridge/web-sdk` branch. Nothing is committed without your yes.

You need Node.js 22 or newer and an interactive terminal. A run usually takes 3 to 10 minutes. Run `npx @revbridge/setup --detect-only` to see what it detects without changing anything.

**Option 2: paste the snippet.** Copy the script tag from [Web SDK → Install](https://docs.revbridge.ai/developer/web-sdk.md#install) into the `<head>` of every page, with your publishable key from **Settings → API Keys**.

Then open your site in a browser. Each page load sends a `page_view`.

**Server**

**1. Create a secret key**

In **Settings → API Keys**, click **New API key**, name it and click **Create**. Copy the `rbak_` key: it is shown once. See [Authentication](https://docs.revbridge.ai/developer/authentication.md).

**2. Send one event**

```bash theme={null}
export REVBRIDGE_API_KEY="rbak_YOUR_SECRET_KEY"

curl -i -X POST https://api.revbridge.ai/ingest/events \
  -H "Authorization: Bearer $REVBRIDGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "users": [
      {
        "identifiers": {
          "email": "you@yourcompany.com",
          "first_name": "Your name"
        },
        "events": [
          { "event_name": "quickstart_test", "timestamp": "2026-10-27T12:00:00Z" }
        ]
      }
    ]
  }'
```

Use your own email and today's date, so the test lands on your own profile.

**3. Read the response**

Status `202` with `"users_accepted": 1` means it worked. If the response has a `warnings` list, a field was dropped. A `401` HTML page means the key is wrong. See [Errors](https://docs.revbridge.ai/developer/errors.md).

## Check that it arrived

1. In the app, open **Data → Events**.
2. Under **Received events**, find your event (`page_view` or `quickstart_test`) and open it to see its properties and how the person was identified.
3. Open **People** and search for the email you sent to see the profile.

More on reading that screen in [Check your events](https://docs.revbridge.ai/integrations/events.md).

> [!TIP]
>
> There is no test environment for customer keys. Test with your own contact, as above, before you connect real traffic or import history.

## Next steps

> **[Ingesting Events](https://docs.revbridge.ai/developer/ingesting-events.md)**
>
> The full request and response, and how to import history.

> **[Event Types](https://docs.revbridge.ai/developer/event-types.md)**
>
> The standard commerce and page events.

> **[User Identification](https://docs.revbridge.ai/developer/user-identification.md)**
>
> Identifiers, merges, profile fields and consent.

> **[Best Practices](https://docs.revbridge.ai/developer/best-practices.md)**
>
> The mistakes that pass validation and break your numbers.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.