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

# v0 Email: Send Notifications by Describing What You Want

> Add email to your v0 app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.

## How do I add email to my v0 app?

[v0](https://v0.dev) turned your prompt into a production-ready app. Dreamlit does the same thing for email: describe what you want, and it generates the complete workflow.

The two tools complement each other naturally. v0 generates your frontend and API routes. Dreamlit securely connects to your database (through the [Vercel Marketplace](https://vercel.com/marketplace)) and handles notifications separately:

* Lead captured → welcome sequence
* Purchase completed → receipt sent
* Feedback submitted → thank you email

No API calls between them, no shared code, no deployment coupling.

<p align="center">
  <img src="https://mintcdn.com/notikaai/9ifCSqE-flEfgyMY/images/v0-dreamlit.png?fit=max&auto=format&n=9ifCSqE-flEfgyMY&q=85&s=5a29ccc72842a2910bc43c61078ab020" alt="v0 + Dreamlit" style={{borderRadius: '12px', maxHeight: '300px'}} width="762" height="501" data-path="images/v0-dreamlit.png" />
</p>

## Who is this guide for?

* **v0 builders** who need transactional email without the infrastructure detour
* **Vercel users** who want notifications that work across edge, serverless, and any runtime
* **Anyone using v0 with Supabase or Neon** looking for professional, on-brand emails

## Why use Dreamlit instead of building email in v0?

You could prompt v0 to wire up Resend or SendGrid. It'll generate the integration. But then:

1. How do you preview that email with real user data before it goes out?
2. How do you track who opened it? Who clicked?
3. What happens when emails bounce?
4. Are you setting up DKIM and SPF records for deliverability?
5. What about retry logic when the provider has an outage?
6. What about scheduled emails? Recurring digests? Drip sequences?
7. After you've built a few workflows, how do you see how they're all performing in one place?
8. How do you let teammates edit email copy without touching code?

Or just use Dreamlit and skip all of that. We handle it end-to-end.

## What do I need before starting?

* A v0 app with a **database integration** (Supabase, Neon, or another Postgres provider)
* 5 minutes

***

## Does my v0 project have a database?

Dreamlit securely connects to your database and uses changes as triggers for emails. v0 supports several database integrations through the [Vercel Marketplace](https://vercel.com/marketplace).

### Supported databases

v0 offers built-in integrations for:

* **Supabase**: Full Postgres database with auth, realtime, and more
* **Neon**: Serverless Postgres with instant provisioning
* **Other Postgres providers**: Any Postgres database you've connected manually

<Note>
  If you're starting a new v0 project and plan to use Dreamlit, we recommend **Supabase** for the easiest setup. Just two clicks to connect.
</Note>

### How do I check my database setup?

1. Open your v0 project
2. Go to **Project Settings → Integrations**
3. Look for Supabase, Neon, or another database integration

If you don't see a database integration, you can add one directly from v0's chat or project settings.

### How do I add a database to my v0 project?

If your project doesn't have a database yet:

1. In v0's chat, prompt: *"Add a Supabase database to this project"* (or Neon)
2. Click **Add** when v0 suggests the integration
3. Follow the setup wizard to connect through the Vercel Marketplace

v0 will provision the database and make it available to your app automatically.

***

## How do I connect Dreamlit to my database?

<Tabs>
  <Tab title="Supabase">
    If your v0 app uses Supabase, connecting is two clicks:

    <Steps>
      <Step title="Create a Dreamlit account">
        Go to [app.dreamlit.ai](https://app.dreamlit.ai) and sign up.
      </Step>

      <Step title="Connect via OAuth">
        Click **Connect Supabase** and authorize the connection. Dreamlit securely connects to your Supabase project.

        <Frame>
          <img src="https://mintcdn.com/notikaai/adckcWobFeOatSLI/images/supabaseconnect.gif?s=fae094684d1c16f9d6ba024157359ea0" alt="Connecting Supabase via OAuth" width="1408" height="1080" data-path="images/supabaseconnect.gif" />
        </Frame>
      </Step>
    </Steps>

    **That's it. 2 clicks and you're connected.**

    <Tip>
      **Need auth emails?** (password reset, magic links, email verification) Check out our [Supabase Auth Emails guide](/docs/guides/supabase-auth-emails) for one-click setup.
    </Tip>
  </Tab>

  <Tab title="Neon">
    If your v0 app uses Neon, you'll connect with your database connection string:

    <Steps>
      <Step title="Create a Dreamlit account">
        Go to [app.dreamlit.ai](https://app.dreamlit.ai) and sign up.
      </Step>

      <Step title="Get your connection string">
        In the [Neon Console](https://console.neon.tech), go to your project and copy the connection string from the dashboard.
      </Step>

      <Step title="Connect in Dreamlit">
        Click **Connect Postgres** and paste your connection string. Follow the guided setup to grant Dreamlit the minimal permissions it needs.
      </Step>
    </Steps>

    For detailed setup instructions, see [commands to set up your database user](/docs/configuration/data-sources/postgres#commands-to-run-to-setup-your-dreamlit_app-database-user).
  </Tab>

  <Tab title="Other Postgres">
    For other Postgres providers (Railway, Render, etc.), you'll connect with your connection string:

    <Steps>
      <Step title="Create a Dreamlit account">
        Go to [app.dreamlit.ai](https://app.dreamlit.ai) and sign up.
      </Step>

      <Step title="Get your connection string">
        Copy your Postgres connection string from your database provider.
      </Step>

      <Step title="Connect in Dreamlit">
        Click **Connect Postgres** and paste your connection string. Follow the guided setup to grant Dreamlit the minimal permissions it needs.
      </Step>
    </Steps>

    For detailed setup instructions, see [commands to set up your database user](/docs/configuration/data-sources/postgres#commands-to-run-to-setup-your-dreamlit_app-database-user).
  </Tab>
</Tabs>

***

## How do I create my first email workflow?

Here's an example: setting up a welcome email that sends when someone signs up. You can use this pattern for any workflow where you record data in your database.

### Step 1: Create the workflow in Dreamlit

Click **Create Workflow** and describe what you want:

> "Send a welcome email when a new user signs up"

The AI generates everything: the database trigger, email template, and copy.

<Frame caption="The AI generates your workflow automatically">
  <img src="https://mintcdn.com/notikaai/ND5vtH9yB3HGk0VQ/images/new-workflow.gif?s=cf7aaa6638f6349bb3e9cf79f7512383" alt="AI generating a welcome email workflow" width="1784" height="720" data-path="images/new-workflow.gif" />
</Frame>

### Step 2: Update your v0 app (if needed)

Here's the key insight: **Dreamlit securely connects to your database and reacts to changes, not your code.** When a new row appears in your `users` or `auth.users` table, Dreamlit sends the email automatically.

<Note>
  If you're using Supabase Auth, users are automatically added to the `auth.users` table when they sign up. No extra table needed.
</Note>

If your v0 app already creates user records on signup, you're done. No code changes needed.

If you need to add a field or table for Dreamlit to use as a trigger, prompt v0:

> "When a user signs up, add a row to the `user_signups` table with their email and name"

Or for something like order confirmations:

> "When a user completes checkout, insert a row into the `orders` table with the order details"

### Step 3: Preview and publish

Preview your email with real data from your database, then click **Publish**.

***

## How does v0 work with Dreamlit?

Dreamlit triggers emails based on database changes. When prompting v0, focus on getting data into your database. Dreamlit handles the rest.

**Good prompts for v0:**

| You want...           | Prompt v0 with...                                                  |
| --------------------- | ------------------------------------------------------------------ |
| Welcome emails        | "Store new signups in a `user_signups` table"                      |
| Order confirmations   | "Insert order details into `orders` when checkout completes"       |
| Comment notifications | "Save comments to a `comments` table with the post\_id and author" |
| Activity alerts       | "Log user actions to an `activity` table"                          |

**You don't need to prompt v0 about emails at all.** Just make sure the data lands in your database, and Dreamlit takes it from there.

***

## What other workflows can I build?

Any workflow that triggers on a database change. Check out our [use cases](/docs/getting-started/use-cases) for example prompts across welcome emails, order confirmations, reminders, internal alerts, and more.

***

## How do I send from my own domain?

By default, emails send from Dreamlit's domain. To send from your own domain (like `hello@yourapp.com`), set up a custom email domain in minutes.

<Steps>
  <Step title="Add your domain">
    Go to **Settings → Email Domains** and click **Add domain**. Enter your domain (we recommend a subdomain like `mail.yourapp.com`).
  </Step>

  <Step title="Verify automatically">
    Dreamlit can automatically configure your DNS records for you. Just click **Verify with your DNS provider**, sign in to your provider, and authorize the changes.

    <Frame caption="Automatic DNS setup, no manual records needed">
      <img src="https://mintcdn.com/notikaai/ND5vtH9yB3HGk0VQ/images/auto-dns.gif?s=ce1cca7fadcd17e41cb37a8fdce2753d" alt="Automated DNS verification flow" width="1024" height="720" data-path="images/auto-dns.gif" />
    </Frame>

    <Tip>
      If your DNS provider isn't supported for automatic setup, you can add the records manually. Dreamlit shows you exactly what to add.
    </Tip>
  </Step>

  <Step title="Start sending">
    Once verified, select your domain when creating email workflows. Your emails will now come from your own brand.
  </Step>
</Steps>

This improves deliverability and looks more professional to your users. [Full domain setup guide →](/docs/configuration/email/custom-domain)

***

## FAQ

### What if my v0 project doesn't have a database?

You can add one directly from v0. In the chat, prompt: "Add a Supabase database to this project" (or Neon). v0 will walk you through the [Vercel Marketplace](https://vercel.com/marketplace) setup.

### Which database should I choose: Supabase or Neon?

We recommend **Supabase**. It connects to Dreamlit in two clicks via OAuth, and includes auth, realtime, and other features you'll likely need. Neon works too if you already have it set up.

### Why aren't my emails sending?

A few things to check:

1. **Is your workflow published?** Saved workflows don't run until you click Publish.
2. **Is the trigger table correct?** v0 might have named tables differently than you prompted. Check your database to see the actual table names.
3. **Is data being written?** Check your database dashboard to confirm rows are being created.
4. **Try the preview.** Use the preview to test with sample data and verify the workflow runs.

### Do I need to change my v0 app code?

Usually no. Dreamlit reacts to database changes, so if your app already writes the data you need, you're all set. If you need to track something new (like order completions), just prompt v0 to add the database write.

### Will my emails work on Vercel's edge functions?

Yes. Dreamlit doesn't run inside your app. It connects directly to your database. Deploy to Vercel's edge, serverless, or any other runtime. Your email workflows keep running.

### Can I send Slack notifications too?

Yes. Dreamlit supports Slack alongside email. Just describe what you want: "Notify our team on Slack when a new order comes in." [Learn more about Slack →](/docs/configuration/slack)

### How do I test without emailing real users?

Use the preview feature to send test emails to yourself with real data from your database. Your workflow won't email actual users until you publish it.

### What if I'm already using Resend, SendGrid, or another email provider?

Dreamlit works alongside traditional email providers. Since Dreamlit takes a fundamentally different approach (database-driven, AI-generated workflows), you don't need to migrate off your existing setup. Try Dreamlit for your next workflow and keep using your current provider for everything else.

***

## Next steps

<CardGroup cols={2}>
  <Card title="Supabase Auth emails" icon="shield-keyhole" href="/docs/guides/supabase-auth-emails">
    Set up password reset, magic links, and more
  </Card>

  <Card title="Email domain setup" icon="at" href="/docs/configuration/email/custom-domain">
    Send from your own domain
  </Card>

  <Card title="Use cases" icon="lightbulb" href="/docs/getting-started/use-cases">
    More workflow examples
  </Card>

  <Card title="Get support" icon="headset" href="/docs/resources/getting-support">
    We're here to help
  </Card>
</CardGroup>

## References

* [v0](https://v0.dev)
* [Vercel Marketplace](https://vercel.com/marketplace)
* [Dreamlit Supabase integration](/docs/configuration/data-sources/supabase)
* [Dreamlit Postgres setup guide](/docs/configuration/data-sources/postgres)
* [Supabase Auth SMTP docs](https://supabase.com/docs/guides/auth/auth-smtp)
* [Dreamlit use cases](/docs/getting-started/use-cases)

***

Last validated: 2026-04-12
