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

# Embeds & integrations

> Add working forms, scheduling, payments, video, and more — no backend needed.

Shareable hosts **static HTML**, but your page can still be interactive. Anything a
third party offers as an **embed** — an `<iframe>` snippet or a script + form — works
on a Shareable page, because the *other* service runs the logic and stores the data.
Shareable just serves your HTML, embed and all.

<Tip>
  New to this? Start with the [Cookbook](/cookbook/overview) — step-by-step recipes
  for a contact form, booking page, newsletter, payments, and more. This page is the
  reference list of what's possible.
</Tip>

## You don't add it — your AI does

A page is just HTML, so the simplest path is to **ask the AI that builds your page**
to include the integration:

> *"Build an RSVP page with a Google Form."* · *"Add a Calendly booking widget."* ·
> *"Embed this YouTube video and a newsletter signup."*

Claude, ChatGPT, or Gemini writes the embed into the HTML, you publish, and it works — nothing
to configure in Shareable.

## Forms — the most common case

<ResponseField name="Iframe form (recommended)" type="Google Forms, Typeform, Tally, Jotform">
  Paste the provider's `<iframe>`. It renders in a sandboxed frame and submits
  directly to the provider.

  ```html theme={null}
  <iframe src="https://docs.google.com/forms/d/e/XXXX/viewform?embedded=true"
          width="640" height="800">Loading…</iframe>
  ```
</ResponseField>

<ResponseField name="Native HTML form" type="Formspree, Tally, Basin">
  A plain `<form>` that posts to a form-handling service.

  ```html theme={null}
  <form action="https://formspree.io/f/XXXX" method="POST">
    <input name="email" type="email" required />
    <button>Send</button>
  </form>
  ```
</ResponseField>

## What else you can embed

The same approach covers most "interactive" things on a page:

| Category                       | Services                                                          |
| ------------------------------ | ----------------------------------------------------------------- |
| **Scheduling / booking**       | Calendly, Cal.com, SavvyCal                                       |
| **Payments / checkout**        | Stripe Payment Links & Buy Button, Gumroad, Lemon Squeezy, PayPal |
| **Video & audio**              | YouTube, Vimeo, Loom, Wistia, Spotify, SoundCloud                 |
| **Maps**                       | Google Maps, Mapbox                                               |
| **Email capture / newsletter** | Mailchimp, ConvertKit, Beehiiv, Substack                          |
| **Chat & support**             | Intercom, Crisp, Tawk.to                                          |
| **Data & dashboards**          | Airtable, Datawrapper, Flourish, Observable, Google Sheets charts |
| **Social posts**               | X / Twitter, Instagram, LinkedIn, TikTok                          |
| **Comments**                   | Giscus, Disqus                                                    |
| **Code demos**                 | CodePen, CodeSandbox, StackBlitz                                  |

<Tip>
  Rule of thumb: if a service gives you an **"embed" / `<iframe>` snippet** or a
  **paste-this-script** widget, it'll work on a Shareable page.
</Tip>

## What Shareable does *not* do

We don't store submissions, process payments, or send emails on your behalf — the
embedded service owns all of that. Shareable stays a simple, fast, static host; the
provider handles the data. That separation is what keeps your page portable and
dependency-free.

<Note>
  **Iframe embeds** are cross-origin and sandboxed — the safe default. A pasted
  external `<script>` runs in the page itself, so only embed scripts from services
  you trust. Keep the rest of the page self-contained (inline your CSS/images); the
  embed is the one thing that loads from another domain.
</Note>
