# Introduction

> What Nordva Launch is, the seven primitives behind one API key, and where to start.

Nordva Launch is one REST API and one MCP server for the things a small product needs around its users, from before launch to after people pay.

| Primitive | What it does |
|---|---|
| **Changelog** | Markdown release notes, scheduling, a hosted public page, email subscribers and an embeddable widget. |
| **Waitlist** | Signups with referral codes, a hosted page and widgets, invites, CSV import and export, and where each signup came from. |
| **Feedback** | Free-text feedback, classified automatically, routed to email, Slack, Linear or GitHub by category, answered from the inbox, and a public [board](/guides/feedback-board/) where users vote on ideas. |
| **Notifications** | In-app notifications for a bell: send to one user, a group picked from your contacts, or everyone, now or scheduled, post changelog entries to it, read and mark read from the browser for a user your server signed. Every plan, with a monthly limit per project. |
| **Revenue** | Your own Stripe account or Lemon Squeezy store, read only: MRR, new and churned subscriptions, revenue over time, and which source each paying customer came from. Every plan (Free reads 30 days). |
| **Contacts** | One record per person across waitlist, subscribers, feedback and paying customers. Not a CRM. |
| **Attribution** | Which signup sources produce paying customers, with no tracking script. By referring site on every plan; campaigns on Builder; ad spend and return from Indie. |

Everything is behind the same API key, and every primitive is also available as tools in the [MCP server](/mcp-setup), so Claude Code, Cursor or VS Code can publish a changelog entry, look up a customer or report your MRR from inside a session.

## How it fits together

- **Two kinds of key.** A secret key (`nv_live_…`) for your server, and a publishable key (`nv_pub_live_…`) that is safe in a browser and can only write to the public endpoints: waitlist signup, feedback, changelog subscribe, and reading a signed-in user's notifications (with the `user_hash` your server computes). See [Authentication](/authentication).
- **One response shape.** Every response is `{ data, error, meta }`. Errors carry a stable `code` and a `remediation` telling you what to do. See [Error codes](/api-reference/errors).
- **Safe retries.** `POST` and `PATCH` accept an `Idempotency-Key`. See [Idempotency](/api-reference/idempotency).
- **Visitors only where you choose.** Attribution and insights count what passes through Launch's own forms and API, with no cookie. Web analytics is an optional one-line script with a tracking mode per site, from cookieless counting to a first-party visitor id where your visitors allow it; the [Cookie Policy](https://launch.nordva.dev/cookies/#analytics-cookies) lists every cookie per mode. There are no heatmaps, recordings or click paths.

## Where to start

<CardGrid>
  <LinkCard title="Quickstart" href="/quickstart" description="Get an API key and publish your first changelog entry in a few minutes." />
  <LinkCard title="MCP setup" href="/mcp-setup" description="Connect Claude Code, Cursor, VS Code or Claude Desktop." />
  <LinkCard title="Add a waitlist" href="/guides/waitlist-nextjs" description="A signup form in Next.js, or a zero-code widget, with referrals and sources." />
  <LinkCard title="Connect Stripe" href="/guides/revenue-stripe" description="Read-only. See revenue, who became a customer, and from where." />
  <LinkCard title="Connect Lemon Squeezy" href="/guides/revenue-lemonsqueezy" description="The same numbers for a Lemon Squeezy store. Launch only reads." />
  <LinkCard title="Endpoints" href="/endpoints/" description="Every endpoint, generated from the API's own OpenAPI document." />
  <LinkCard title="Error codes" href="/api-reference/errors" description="Stable codes, what they mean and what to do about them." />
</CardGrid>

Source: https://docs.nordva.dev/introduction/
