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

# Copy-paste components

> Bare, wired forms for six frameworks - paste one in and it works.

<Info>**Free** - included on every plan.</Info>

Formpaste ships a ready-to-paste form for each of six frameworks: HTML,
React, Next.js, Astro, Vue, and Svelte. Each one is a complete, working
integration - an email field, a message field, the `access_key`, and
success/error handling wired to `POST /submit`.

<Note>
  These are intentionally plain, unstyled markup - a functioning contact
  form, not a themed component library. A styled premium component library
  isn't part of the current product; don't expect one yet.
</Note>

## Getting a snippet

Three equivalent ways to get one:

<CardGroup cols={3}>
  <Card title="Dashboard" icon="browser">
    Copy it from the form's **Setup** tab - the real `access_key` is already
    filled in.
  </Card>

  <Card title="Docs" icon="book" href="/docs/framework-snippets">
    Copy any of the six from [Framework snippets](/docs/framework-snippets) and
    swap in your `access_key` by hand.
  </Card>

  <Card title="MCP agent" icon="robot" href="/docs/agents/get-snippet">
    Have an agent call [`get_snippet`](/docs/agents/get-snippet) with a `formId` —
    it returns the same snippet with the access key filled in.
  </Card>
</CardGroup>

## What "wired" means here

Every snippet:

* POSTs to `https://api.formpaste.com/submit` with the form's `access_key`.
* Handles the JSON success/error response (or, for the plain HTML version, a
  no-JS `redirect` - see [Redirects](/docs/features/redirects)).
* Needs no separate client library or SDK install.

See [Framework snippets](/docs/framework-snippets) for the full code for each of
the six frameworks.
