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

# Introduction

> What Formbase is and how to get your first submission.

Formbase is an open-source backend for form submissions. You build the form UI in your app or site, then send the data to a Formbase endpoint. Formbase stores each submission, shows it in the dashboard, and can email you when new data arrives.

The workflow is simple: create a form in the dashboard, post to its endpoint, and review submissions. Browser posts redirect to a built-in success page, while server requests receive JSON.

## How Formbase works

<Steps>
  <Step title="Create a form endpoint">
    Forms live in the dashboard. Each form gets a unique endpoint like `https://formbase.dev/s/your-form-id`.
  </Step>

  <Step title="Send a submission">
    Any HTTP client can submit. For static sites, use a normal HTML form. For apps, use fetch or a server action.
  </Step>

  <Step title="Review and notify">
    Submissions appear in the dashboard. Enable email notifications if you want alerts for new entries.

    <Frame>
      <img src="https://mintcdn.com/formbase/gA9p3Ks8sQ18Mo1W/images/submissions-table.png?fit=max&auto=format&n=gA9p3Ks8sQ18Mo1W&q=85&s=88d55a8e43f0534809a399f133d59e34" alt="Submissions in the dashboard" width="1280" height="720" data-path="images/submissions-table.png" />
    </Frame>
  </Step>
</Steps>

<Callout type="note">
  Formbase does not enforce a field schema. The `name` attributes you send become keys in your submission data.
</Callout>

## Quick start examples

<Tabs>
  <Tab title="HTML form">
    ```html index.html theme={null}
    <form action="https://formbase.dev/s/YOUR_FORM_ID" method="POST">
      <input name="name" placeholder="Name" required />
      <input name="email" type="email" placeholder="Email" required />
      <textarea name="message" required></textarea>
      <button type="submit">Send</button>
    </form>
    ```

    The browser handles the redirect after submission.
  </Tab>

  <Tab title="Server submit">
    ```ts server.ts theme={null}
    const response = await fetch('https://formbase.dev/s/YOUR_FORM_ID', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ name: 'Ada', email: 'ada@example.com' }),
    });

    const result = await response.json();
    console.log(result.message, result.data);
    ```

    Server requests receive JSON with the data you submitted.
  </Tab>
</Tabs>

## Next steps

<CardGroup cols={2}>
  <Card title="Create your first form" icon="plus" href="/getting-started/creating-your-first-form">
    Set up a form in the dashboard and grab its endpoint.
  </Card>

  <Card title="Find your endpoint" icon="link" href="/getting-started/your-form-endpoint">
    Learn how endpoints work for hosted and self-hosted setups.
  </Card>
</CardGroup>
