Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions concepts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,18 @@

Every problem has a status that tells you where it is and whether it needs you.

| Status | What it means | Your move |
| Status | What it means | Who sets it |
| --- | --- | --- |
| <span> <img src="/icons/status/investigating.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> Investigating </span> | Interfere is working out what happened and why. If it can't reach a conclusion on its own, it flags the problem for you. | Usually nothing |
| <img src="/icons/status/active.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> Active | A confirmed problem, explained and waiting on a fix. | Decide on the fix |
| <img src="/icons/status/in-recovery.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> In recovery | The problem looks like it's clearing on its own. Interfere watches before closing it. | Nothing |
| <span><img src="/icons/status/needs-attention.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> Needs attention</span> | Likely a regression that Interfere isn't sure about. | Confirm it |
| <img src="/icons/status/resolved.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> Resolved | Marked fixed. Interfere keeps watching in case it returns. | You set this |
| <img src="/icons/status/dismissed.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> Dismissed | Not worth acting on. | You set this |

You dismiss a problem when it isn't worth acting on. It leaves your active list, and Interfere still remembers it, so you keep the history if it ever returns. You mark a problem resolved once you've shipped a fix; Interfere then watches later releases and reopens it as a [regression](#regression) if the same issue comes back.
| <span> <img src="/icons/status/light/investigating.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> Investigating </span> | Interfere is working out what happened and why. If it can't reach a conclusion on its own, it flags the problem for you. | Interfere |
| <img src="/icons/status/light/active.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> Active | A confirmed problem, explained and waiting on a fix. | Interfere |
| <img src="/icons/status/light/in-recovery.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> In recovery | The problem looks like it's clearing on its own. Interfere watches for a while before it closes it out. | Interfere |
| <span><img src="/icons/status/light/needs-attention.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> Needs attention</span> | Likely a regression that Interfere isn't sure about. | Interfere |
| <img src="/icons/status/light/resolved.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> Resolved | The problem has stopped and stayed gone. Interfere keeps watching in case it returns. | Interfere |
| <img src="/icons/status/light/dismissed.svg" alt="" style={{display:"inline-block",height:"24px",width:"24px",verticalAlign:"middle",marginRight:"0.5em"}} /> Dismissed | Not worth acting on. | You |

Interfere drives status as it investigates and watches a problem. It works through Investigating, marks a problem Active once it's confirmed, and marks it Resolved when the problem stops recurring. If the same issue comes back on a later release, Interfere reopens the resolved problem as a [regression](#regression).

The one status you set yourself is Dismissed. Dismiss a problem when it isn't worth acting on. It leaves your active list, and Interfere still keeps the record, so you have the history if it ever returns. See [the problem view](/product/problems#work-the-problem) for how to dismiss.

### Fixes

Expand All @@ -59,6 +61,6 @@
These are the [integrations](/integrations/overview) that connect Interfere to the rest of your stack.

- A **source** is where your code lives (GitHub and its enterprise variants). Interfere uses it to link a problem to the commit behind it and to base a proposed fix on your real code.
- A **destination** is where your code runs (Vercel, Cloudflare). Interfere watches your deployments so a problem lines up with the release that shipped it.

Check warning on line 64 in concepts.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

concepts.mdx#L64

Did you really mean 'Vercel'?

Connect them from [**Settings → Integrations**](https://interfere.com/~/*/settings/integrations). The [Integrations](/integrations/overview) section covers each provider, the access it needs, and how to set it up.
Binary file modified images/inbox.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/problem-detail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions product/activity.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "Activity"
icon: "bell"
description: "A running feed of what's happening across your workspace."
---

Expand Down
1 change: 1 addition & 0 deletions product/compliance.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
---
title: "Compliance"
icon: "shield-check"
description: "Interfere's certifications, reports, and data handling."

Check warning on line 4 in product/compliance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

product/compliance.mdx#L4

Did you really mean 'Interfere's'?
---

Interfere is currently in the audit stage for SOC 2. We treat customer data as confidential and limit internal access to what's needed to run and support the service.

<Card title="Trust center" icon="shield-check" href="https://trust.interfere.com">
Our live security posture: current certifications, security documentation, and subprocessors.

Check warning on line 10 in product/compliance.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

product/compliance.mdx#L10

Did you really mean 'subprocessors'?
</Card>

## Requesting documents
Expand Down
7 changes: 6 additions & 1 deletion product/inbox.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
title: "Inbox"
icon: "inbox"
description: "Every problem in your product, in one place to triage and work."
---

The [Inbox](https://interfere.com/~/*) is where you see and work every [problem](/concepts#problem) Interfere has found. Each one arrives already grouped across your users and surfaces and investigated, so you spend your time deciding what to do rather than digging through stack traces. Because problems are de-duplicated, the Inbox stays a short list of real issues instead of a wall of alerts.
Interfere fills your [Inbox](https://interfere.com/~/*) for you. You never open a ticket here. Every [problem](/concepts#problem) surfaces on its own as Interfere processes your events, already grouped across your users and surfaces and already investigated. Your work starts at triage, not at filing. Because problems are de-duplicated, the Inbox stays a short list of real issues instead of a wall of alerts.

![Inbox board showing problems grouped by status](/images/inbox.png)

Expand All @@ -15,3 +16,7 @@ The [Inbox](https://interfere.com/~/*) is where you see and work every [problem]
## Statuses

Every problem has a status that tells you where it is and whether it needs you, from "under investigation" while Interfere works out the cause, to "needs attention" when it wants you to confirm a likely regression. See [Statuses](/concepts#statuses) for the full set and your move on each.

## Act in bulk

Select several problems from the list to handle them together. You can assign them, set their priority, or subscribe in one action instead of opening each one.
22 changes: 16 additions & 6 deletions product/problems.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "The problem view"
icon: "bug"
sidebarTitle: "Problem view"
description: "Everything you need to understand and fix one problem, with a timeline at its heart."
---
Expand All @@ -25,11 +26,20 @@
- **Relevant sessions.** Jump straight to the [session replays](https://interfere.com/~/*/users) where the problem actually appeared, so you spend your time on where it shows up in a real user's flow.
- **Filtering.** Filter the timeline down to the part you care about when there's a lot going on.

## Collaborate
## Work the problem

A problem is rarely one person's job, so the timeline is where your team works it together.
You don't file problems, and you rarely set their status by hand. Interfere surfaces them from your events and moves them through their [statuses](/concepts#statuses) on its own as it investigates. Your job is to direct and decide. From the problem view you can:

- **Assign it.** Hand a problem to the right teammate.
- **Discuss inline.** Comment and mention people on the timeline to pull in whoever's needed, from the engineer who owns the code to a designer or PM.
- **Get notified.** Interfere notifies the right people when a problem needs them. Choose where those notifications go in [Alerts](https://interfere.com/~/*/settings/alerts).
- **Carry it into Slack.** Mentions and assignments reach you as Slack messages, and you can keep the conversation there. See [Slack](/integrations/slack) or open the [Slack integration](https://interfere.com/~/*/settings/integrations/slack).
- **Assign it.** Hand the problem to the right teammate. Press <kbd>a</kbd> to open the assignee picker.
- **Set priority.** Mark it high, medium, or low so the team knows what to pick up first. Press <kbd>p</kbd> to set it.
- **Edit the title or description.** Interfere writes both for you. Tighten either one if you want it to read a certain way for your team.
- **Discuss inline.** Comment on the timeline and @mention people to pull in whoever's needed, from the engineer who owns the code to a designer or PM.

Check warning on line 36 in product/problems.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

product/problems.mdx#L36

Did you really mean 'whoever's'?
- **Subscribe.** Follow a problem to get its updates, or unsubscribe to step back. Press <kbd>s</kbd> to toggle it.
- **Dismiss it.** When a problem isn't worth acting on, dismiss it to clear it from your active list. Interfere keeps the record in case it returns.
- **Archive it.** Remove a problem you don't want to see at all.

Interfere handles the rest of the lifecycle. It marks a problem resolved once the issue stops recurring, and reopens it as a [regression](/concepts#regression) if it comes back on a later release. You never mark something resolved by hand.

## Get notified

Interfere notifies the right people when a problem needs them. Choose where those notifications go in [Alerts](https://interfere.com/~/*/settings/alerts). Mentions and assignments also reach you as Slack messages, and you can keep the conversation there. See [Slack](/integrations/slack) or open the [Slack integration](https://interfere.com/~/*/settings/integrations/slack).
6 changes: 4 additions & 2 deletions product/security.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
title: "Security"
description: "How you sign in to Interfere, how team access is controlled, and where we stand on compliance."
title: "Authentication & access"
sidebarTitle: "Authentication"
icon: "lock"
description: "How you sign in to Interfere, and how team access is controlled."
---

How your team signs in, and who can reach what. For certifications and reports, see [Compliance](/product/compliance).
Expand All @@ -21,7 +23,7 @@

## Single sign-on (SSO)

Organizations can have members sign in through their own identity provider (IdP) with SAML 2.0, so access follows the accounts and groups you already manage. Interfere works with any SAML 2.0 provider, including Okta, Microsoft Entra ID, Google Workspace, OneLogin, and JumpCloud.

Check warning on line 26 in product/security.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

product/security.mdx#L26

Did you really mean 'Okta'?

Check warning on line 26 in product/security.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

product/security.mdx#L26

Did you really mean 'Entra'?

Our team sets up SSO with you; it isn't self-serve. To turn it on for your organization, reach out at [support@interfere.com](mailto:support@interfere.com), open [support settings](https://interfere.com/~/*/settings/support), and tell us which identity provider you use. We'll exchange the SAML details and enable it together.

Expand All @@ -41,9 +43,9 @@
</Accordion>

<Accordion title="Directory sync (SCIM)" icon="folder-sync">
With SCIM, your identity provider provisions and deprovisions accounts for you. When someone joins or leaves the relevant group in your IdP, their Interfere access follows, so off-boarding isn't a manual step.

Check warning on line 46 in product/security.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

product/security.mdx#L46

Did you really mean 'deprovisions'?
</Accordion>
</AccordionGroup>

## Roles and permissions

Expand Down
1 change: 1 addition & 0 deletions product/settings.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "Settings"
icon: "settings"
description: "Workspace, profile, alerts, integrations, team, and billing."
---

Expand Down
1 change: 1 addition & 0 deletions product/surfaces.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "Surfaces"
icon: "layers"
description: "Manage the apps Interfere watches, their keys, environments, and releases."
---

Expand Down
1 change: 1 addition & 0 deletions product/users.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "Users"
icon: "users"
description: "The people using your product, and session replays of what they did."
---

Expand Down
32 changes: 26 additions & 6 deletions quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,35 @@
<Step title="Install the SDK">
<Tabs>
<Tab title="With an AI agent">
Paste this into your coding agent (Cursor, Claude Code, and the like) and let it wire everything up:
Point your coding agent at the Interfere install prompt and it wires everything up. Run the command for your agent:

```text
Set up the Interfere SDK in this project. Detect my framework
(Next.js, Vite, or NestJS) and follow the matching Interfere
install guide step by step. Read INTERFERE_PUBLIC_KEY from my
environment and never print my keys.
<CodeGroup>

```bash Claude Code
curl -sL https://interfere.com/prompts/onboarding/v8/onboarding-nextjs.md | claude -p "Add Interfere to this codebase"
```

```bash Codex
codex -s workspace-write -a on-request "$(curl -sL https://interfere.com/prompts/onboarding/v8/onboarding-nextjs.md) Add Interfere to this codebase"
```

```bash Cursor
cursor-agent --print --force "$(curl -sL https://interfere.com/prompts/onboarding/v8/onboarding-nextjs.md) Add Interfere to this codebase"
```

</CodeGroup>

On Vite, swap `onboarding-nextjs.md` for `onboarding-vite.md`. Want to read the prompt first? Open it directly:

<CardGroup cols={2}>
<Card title="Next.js install prompt" icon="/icons/tech/nextjs/currentcolor.svg" href="https://interfere.com/prompts/onboarding/v8/onboarding-nextjs.md">
Covers Next.js, NestJS, and other Node backends.
</Card>
<Card title="Vite install prompt" icon="/icons/tech/vite/transparent.svg" href="https://interfere.com/prompts/onboarding/v8/onboarding-vite.md">
Covers Vite and React apps.
</Card>
</CardGroup>

You can also open **Ask AI** at the top of these docs and ask it to install Interfere in your project.
</Tab>
<Tab title="Manually">
Expand Down Expand Up @@ -56,7 +76,7 @@
See [all integrations](/integrations/overview).
</Step>
<Step title="Deploy">
Ship your app. Once it's running, events start flowing and your first problems appear in your [workspace](https://interfere.com/~/*), already grouped and triaged. Trigger an error to confirm the whole path end to end.

Check warning on line 79 in quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

quickstart.mdx#L79

Did you really mean 'triaged'?
</Step>
</Steps>

Expand All @@ -74,7 +94,7 @@
</Accordion>

<Accordion title='A "no release slug" warning'>
The collector needs a release to attach telemetry to. The Next.js and Vite plugins upload one during the build automatically. On a backend or a custom platform, run the [CLI](/integrations/cli) as a postbuild step (`interfere sourcemaps upload ./dist`) with `INTERFERE_API_KEY` set.

Check warning on line 97 in quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

quickstart.mdx#L97

Did you really mean 'postbuild'?

Check warning on line 97 in quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

quickstart.mdx#L97

Did you really mean 'sourcemaps'?
</Accordion>

<Accordion title="Telemetry blocked by an ad-blocker">
Expand Down
3 changes: 2 additions & 1 deletion sdk/nestjs.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "NestJS"
icon: "/icons/tech/nestjs/transparent.svg"
description: "Instrument your NestJS backend so server errors reach Interfere with full stack traces."
---

Expand Down Expand Up @@ -62,12 +63,12 @@
</Steps>

<Check>
Throw an error from a route and it shows up in your [workspace](https://interfere.com/~/*) within seconds, already grouped and triaged.

Check warning on line 66 in sdk/nestjs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

sdk/nestjs.mdx#L66

Did you really mean 'triaged'?
</Check>

## Source maps and releases

A backend has no bundler plugin, so use the [CLI](/integrations/cli) to upload source maps and register each deploy as a release. Add a `postbuild` step:

Check warning on line 71 in sdk/nestjs.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

sdk/nestjs.mdx#L71

Did you really mean 'bundler'?

```json package.json
{
Expand Down Expand Up @@ -125,5 +126,5 @@
| --- | --- | --- |
| `INTERFERE_PUBLIC_KEY` | Yes | Your [surface public key](https://interfere.com/~/*/surfaces) (`interfere_pub_<region>_…`). Routes telemetry to your project. |
| `INTERFERE_API_KEY` | For releases | Used by the [CLI](/integrations/cli) to upload source maps (`interfere_secret_<region>_…`). A build-time secret; keep it in CI. |
| `INTERFERE_ENVIRONMENT` | No | Environment label for releases. Falls back to `VERCEL_ENV`, then `NODE_ENV`. |
| `INTERFERE_ENVIRONMENT` | No | Labels this process's telemetry and releases (`production`, `staging`, or a label you choose). Falls back to `VERCEL_ENV`, then `NODE_ENV`, then `development`. Interfere drops the `development`, `local`, and `test` environments before ingestion, so set a real one to capture from it. |
| `INTERFERE_DEBUG` | No | Set to `1` for lifecycle logs while setting up. |
28 changes: 25 additions & 3 deletions sdk/next-js.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: "Next.js"
icon: "/icons/tech/nextjs/currentcolor.svg"
mode: "default"
description: "Add error tracking, session replay, and product analytics to your Next.js app with a single provider."
---
Expand Down Expand Up @@ -100,7 +101,7 @@

<Check>
That's the whole install. Run your app, trigger an error, and it shows up in your dashboard within
seconds, already grouped and triaged. Open your [workspace](https://interfere.com/~/*) to confirm it. There's nothing else to configure. (The SDK stays quiet

Check warning on line 104 in sdk/next-js.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

sdk/next-js.mdx#L104

Did you really mean 'triaged'?
outside production; see [the FAQ](#faq) to capture in development.)
</Check>

Expand All @@ -110,6 +111,7 @@
| ------------------------------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `INTERFERE_PUBLIC_KEY` | Yes | Your [surface public key](https://interfere.com/~/*/surfaces) (`interfere_pub_<region>_…`, where `<region>` is `us` or `eu`). Safe to expose; it only authorizes ingestion. |
| `INTERFERE_API_KEY` | For releases | Interfere API key (`interfere_secret_<region>_…`). A **server-side build credential** for source-map upload and release metadata. Never expose it in browser code. |
| `INTERFERE_ENVIRONMENT` | No | Labels this deployment's telemetry and releases (`production`, `staging`, `preview`, or a label you choose). Read at build time and stamped into the bundle, so it needs no `NEXT_PUBLIC_` prefix. Defaults to `VERCEL_ENV`, then `NODE_ENV`, then `development`. See [Environments](#environments). |
| `NEXT_PUBLIC_INTERFERE_ROUTE_PREFIX` | No | Override the proxy route prefix. Defaults to `/api/interfere`. See [Custom route prefix](#custom-route-prefix). |

<Warning>
Expand All @@ -136,6 +138,26 @@
correlate the same issue across surfaces into one problem.
</ParamField>

### Environments

Interfere tags everything it captures with the environment it ran in, and labels each release the same way. In the dashboard, releases carry an environment badge and you can filter by environment, so production data and preview data stay apart.

Set it with `INTERFERE_ENVIRONMENT`:

```env
INTERFERE_ENVIRONMENT=production
```

The label is free-form: `production`, `staging`, `preview`, `canary`, or whatever you name it. If you don't set it, Interfere falls back to `VERCEL_ENV`, then `NODE_ENV`, then `development`. On Vercel you usually get the right value without doing anything.

Check warning on line 151 in sdk/next-js.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

sdk/next-js.mdx#L151

Did you really mean 'Vercel'?

<Note>
Interfere reads this at build time and bakes it into your bundle, so it does not need a `NEXT_PUBLIC_` prefix.
</Note>

<Warning>
Interfere drops local-like environments (`development`, `local`, `test`) before ingestion, so everyday local traffic never reaches your dashboard. An app with no environment set defaults to `development` and is filtered out, which is one reason nothing shows up until you deploy. Set a real environment, or turn off environment filtering for the surface, to capture from one.
</Warning>

### Choose what's captured

By default Interfere captures all of the signals below. Turn any off with `plugins`. For example, disable session replay if you don't want recordings:
Expand All @@ -151,7 +173,7 @@
<li><code>errors</code>: uncaught exceptions</li>
<li><code>logs</code>: console output</li>
<li><code>device</code>: device and browser info</li>
<li><code>pageEvents</code>: pageviews and clicks</li>

Check warning on line 176 in sdk/next-js.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

sdk/next-js.mdx#L176

Did you really mean 'pageviews'?
<li><code>rageClick</code>: rage-click detection</li>
<li><code>replay</code>: session replay</li>
</ul>
Expand Down Expand Up @@ -212,7 +234,7 @@
</ParamField>

<Note>
`identity.set()` is deduplicated per session, so calling it on every render is fine. Identity

Check warning on line 237 in sdk/next-js.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

sdk/next-js.mdx#L237

Did you really mean 'deduplicated'?
clears automatically when the session rotates.
</Note>

Expand All @@ -224,7 +246,7 @@
<InterfereProvider consent={{ analytics: true, replay: false }}>{children}</InterfereProvider>
```

| Category | What it covers | Gateable |

Check warning on line 249 in sdk/next-js.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

sdk/next-js.mdx#L249

Did you really mean 'Gateable'?
| ----------- | ------------------------------------- | --------- |
| `necessary` | Error tracking, logs | Always on |
| `analytics` | Page events, rage clicks, device info | Yes |
Expand All @@ -239,7 +261,7 @@
consent.set(); // grant everything
```

Interfere works with any consent platform (c15t, CookieYes, OneTrust). Map its booleans to the categories above.

Check warning on line 264 in sdk/next-js.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

sdk/next-js.mdx#L264

Did you really mean 'booleans'?

<Tip>
To apply consent before the first render, and avoid any flash where a non-consented feature loads,
Expand Down Expand Up @@ -288,12 +310,12 @@
## Other frameworks

<CardGroup cols={3}>
<Card title="Vite + React" icon="/icons/tech/vite/transparent.svg">
<Card title="Vite + React" icon="/icons/tech/vite/transparent.svg" href="/sdk/vite">
`@interfere/vite`: a Vite plugin plus `init()` before render. Works for SPA and SSR.
</Card>

<Card title="TanStack Start" icon="/icons/tech/tanstack/currentcolor.svg">
<Card title="TanStack Start" icon="/icons/tech/tanstack/currentcolor.svg" href="/sdk/vite#server-side-rendering">
`@interfere/vite`: the same plugin, with a server route for proxying.

Check warning on line 318 in sdk/next-js.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

sdk/next-js.mdx#L318

Did you really mean 'proxying'?
</Card>

<Card title="NestJS" icon="/icons/tech/nestjs/transparent.svg" href="/sdk/nestjs">
Expand All @@ -305,12 +327,12 @@

<AccordionGroup>
<Accordion title="Why isn't anything showing up in development?">
The SDK stays quiet when `NODE_ENV !== "production"`, so local noise doesn't reach your dashboard. To capture while testing, call `init({ enabled: true })` in `instrumentation-client.ts`.
The SDK stays quiet when `NODE_ENV !== "production"`, so local noise doesn't reach your dashboard. To capture while testing, call `init({ enabled: true })` in `instrumentation-client.ts`. Interfere also drops the `development`, `local`, and `test` environments before ingestion, so set a real [environment](#environments) too if you want that data to land.
</Accordion>

<Accordion title="Do you handle the same issue across multiple apps?">
Yes. Give each app its own `serviceName`. When the same issue hits more than one surface,
Interfere correlates it into a single problem instead of a separate alert per app.

Check warning on line 335 in sdk/next-js.mdx

View check run for this annotation

Mintlify / Mintlify Validation (interfere) - vale-spellcheck

sdk/next-js.mdx#L335

Did you really mean 'Proxying'?
</Accordion>

<Accordion title="Do I have to use the proxy route?">
Expand Down
Loading