v0 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) 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.
Dreamlit securely connects to your database and uses changes as triggers for emails. v0 supports several database integrations through the Vercel Marketplace.
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.
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.
If you’re using Supabase Auth, users are automatically added to the auth.users table when they sign up. No extra table needed.
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”
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.
Any workflow that triggers on a database change. Check out our use cases for example prompts across welcome emails, order confirmations, reminders, internal alerts, and more.
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.
1
Add your domain
Go to Settings → Email Domains and click Add domain. Enter your domain (we recommend a subdomain like mail.yourapp.com).
2
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.
Automatic DNS setup, no manual records needed
If your DNS provider isn’t supported for automatic setup, you can add the records manually. Dreamlit shows you exactly what to add.
3
Start sending
Once verified, select your domain when creating email workflows. Your emails will now come from your own brand.
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 setup.
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.
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.
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.
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 →
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.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Dreamlit AI","colors":{"primary":"#211F26","light":"#FFFFFF","dark":"#211F26"},"logo":{"light":"https://mintcdn.com/notikaai/5oYlSr6CYnDtP1nH/logo/logo.svg?fit=max\u0026auto=format\u0026n=5oYlSr6CYnDtP1nH\u0026q=85\u0026s=6a42bf3e0ba53bffd9f71388b245160d","dark":"https://mintcdn.com/notikaai/5oYlSr6CYnDtP1nH/logo/logowhite.svg?fit=max\u0026auto=format\u0026n=5oYlSr6CYnDtP1nH\u0026q=85\u0026s=4ad6a9428edeca551e0861c8feeb4d5c"},"favicon":"https://mintcdn.com/notikaai/5oYlSr6CYnDtP1nH/favicon.svg?fit=max\u0026auto=format\u0026n=5oYlSr6CYnDtP1nH\u0026q=85\u0026s=900c3dce9e6121983352a882067426f0","navbar":{"links":[{"href":"mailto:support@dreamlit.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.dreamlit.ai"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/dreamlit-ai"}},"seo":{"indexing":"all"},"integrations":{"ga4":{"measurementId":"G-HEMM1933Q9"},"posthog":{"apiKey":"phc_1AsHWVve9XKNlHmx3SMiEwnIy0fxwNbRYnR8lEHoEaz"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity",{"title":"llms.txt","description":"Short LLM-readable index for Dreamlit docs and product pages.","href":"/llms.txt"},{"title":"llms-full.txt","description":"Full LLM-readable canonical URL inventory.","href":"/llms-full.txt"}],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"notikaai","hasAudioNarration":false,"actualSubdomain":"notikaai","customDomains":["dreamlit.ai"],"gitSource":{"type":"github","owner":"dreamlit-ai","repo":"webapp","deployBranch":"prod","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"issues":true,"edits":true},"entitlements":{},"buildId":"6af21f1772ceb183dca289bf","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Dreamlit Engine (Legacy)","count":59},{"language":"default","tag":"MCP","count":15},{"language":"default","tag":"Quick Start","count":14},{"language":"default","tag":"Learning Center","count":11},{"language":"default","tag":"Configuration","count":8},{"language":"default","tag":"Dreamlit","count":8},{"language":"default","tag":"Resources","count":8},{"language":"default","tag":"Guides","count":7},{"language":"default","tag":"Step types","count":7},{"language":"default","tag":"Get Started","count":5}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"guides/v0-email","slug":"/guides/v0-email","pageMetadata":{"title":"v0 Email: Send Notifications by Describing What You Want","sidebarTitle":"v0 Apps","description":"Add email to your v0 app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.","icon":"sparkles","href":"/guides/v0-email"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Add email to your v0 app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,blockquote:`blockquote`,code:`code`,em:`em`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,Frame,Heading,Note,OptimizedImage,Step,Steps,Tab,Table,Tabs,Tip}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`how-do-i-add-email-to-my-v0-app`,children:`How do I add email to my v0 app?`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://v0.dev`,children:`v0`}),` 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.`]}),`\n`,_jsxs(_components.p,{children:[`The two tools complement each other naturally. v0 generates your frontend and API routes. Dreamlit securely connects to your database (through the `,_jsx(_components.a,{href:`https://vercel.com/marketplace`,children:`Vercel Marketplace`}),`) and handles notifications separately:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Lead captured → welcome sequence`}),`\n`,_jsx(_components.li,{children:`Purchase completed → receipt sent`}),`\n`,_jsx(_components.li,{children:`Feedback submitted → thank you email`}),`\n`]}),`\n`,_jsx(_components.p,{children:`No API calls between them, no shared code, no deployment coupling.`}),`\n`,_jsx(`p`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/notikaai/9ifCSqE-flEfgyMY/images/v0-dreamlit.png?fit=max\u0026auto=format\u0026n=9ifCSqE-flEfgyMY\u0026q=85\u0026s=5a29ccc72842a2910bc43c61078ab020`,alt:`v0 + Dreamlit`,style:{borderRadius:`12px`,maxHeight:`300px`},\"data-og-width\":`762`,width:`762`,\"data-og-height\":`501`,height:`501`,\"data-path\":`images/v0-dreamlit.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/notikaai/9ifCSqE-flEfgyMY/images/v0-dreamlit.png?w=280\u0026fit=max\u0026auto=format\u0026n=9ifCSqE-flEfgyMY\u0026q=85\u0026s=c5b58c7a49fa9dede70dae8a09270d3d 280w, https://mintcdn.com/notikaai/9ifCSqE-flEfgyMY/images/v0-dreamlit.png?w=560\u0026fit=max\u0026auto=format\u0026n=9ifCSqE-flEfgyMY\u0026q=85\u0026s=cab1940cb17f7107c039be394c4c6fa5 560w, https://mintcdn.com/notikaai/9ifCSqE-flEfgyMY/images/v0-dreamlit.png?w=840\u0026fit=max\u0026auto=format\u0026n=9ifCSqE-flEfgyMY\u0026q=85\u0026s=1f9f37a75b955242d8433983ce61672f 840w, https://mintcdn.com/notikaai/9ifCSqE-flEfgyMY/images/v0-dreamlit.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9ifCSqE-flEfgyMY\u0026q=85\u0026s=79561912629bba33ecef38e65f9be930 1100w, https://mintcdn.com/notikaai/9ifCSqE-flEfgyMY/images/v0-dreamlit.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9ifCSqE-flEfgyMY\u0026q=85\u0026s=502c536c1b0d284dd67aa895e736f3ee 1650w, https://mintcdn.com/notikaai/9ifCSqE-flEfgyMY/images/v0-dreamlit.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9ifCSqE-flEfgyMY\u0026q=85\u0026s=7dccc5e3efa22d6b509dbf828b6cae50 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`who-is-this-guide-for`,children:`Who is this guide for?`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`v0 builders`}),` who need transactional email without the infrastructure detour`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Vercel users`}),` who want notifications that work across edge, serverless, and any runtime`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Anyone using v0 with Supabase or Neon`}),` looking for professional, on-brand emails`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`why-use-dreamlit-instead-of-building-email-in-v0`,children:`Why use Dreamlit instead of building email in v0?`}),`\n`,_jsx(_components.p,{children:`You could prompt v0 to wire up Resend or SendGrid. It’ll generate the integration. But then:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`How do you preview that email with real user data before it goes out?`}),`\n`,_jsx(_components.li,{children:`How do you track who opened it? Who clicked?`}),`\n`,_jsx(_components.li,{children:`What happens when emails bounce?`}),`\n`,_jsx(_components.li,{children:`Are you setting up DKIM and SPF records for deliverability?`}),`\n`,_jsx(_components.li,{children:`What about retry logic when the provider has an outage?`}),`\n`,_jsx(_components.li,{children:`What about scheduled emails? Recurring digests? Drip sequences?`}),`\n`,_jsx(_components.li,{children:`After you’ve built a few workflows, how do you see how they’re all performing in one place?`}),`\n`,_jsx(_components.li,{children:`How do you let teammates edit email copy without touching code?`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Or just use Dreamlit and skip all of that. We handle it end-to-end.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-do-i-need-before-starting`,children:`What do I need before starting?`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A v0 app with a `,_jsx(_components.strong,{children:`database integration`}),` (Supabase, Neon, or another Postgres provider)`]}),`\n`,_jsx(_components.li,{children:`5 minutes`}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`does-my-v0-project-have-a-database`,children:`Does my v0 project have a database?`}),`\n`,_jsxs(_components.p,{children:[`Dreamlit securely connects to your database and uses changes as triggers for emails. v0 supports several database integrations through the `,_jsx(_components.a,{href:`https://vercel.com/marketplace`,children:`Vercel Marketplace`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`supported-databases`,children:`Supported databases`}),`\n`,_jsx(_components.p,{children:`v0 offers built-in integrations for:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Supabase`}),`: Full Postgres database with auth, realtime, and more`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Neon`}),`: Serverless Postgres with instant provisioning`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Other Postgres providers`}),`: Any Postgres database you’ve connected manually`]}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`If you’re starting a new v0 project and plan to use Dreamlit, we recommend `,_jsx(_components.strong,{children:`Supabase`}),` for the easiest setup. Just two clicks to connect.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`how-do-i-check-my-database-setup`,children:`How do I check my database setup?`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Open your v0 project`}),`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Project Settings → Integrations`})]}),`\n`,_jsx(_components.li,{children:`Look for Supabase, Neon, or another database integration`}),`\n`]}),`\n`,_jsx(_components.p,{children:`If you don’t see a database integration, you can add one directly from v0’s chat or project settings.`}),`\n`,_jsx(Heading,{level:`3`,id:`how-do-i-add-a-database-to-my-v0-project`,children:`How do I add a database to my v0 project?`}),`\n`,_jsx(_components.p,{children:`If your project doesn’t have a database yet:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In v0’s chat, prompt: `,_jsx(_components.em,{children:`“Add a Supabase database to this project”`}),` (or Neon)`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Add`}),` when v0 suggests the integration`]}),`\n`,_jsx(_components.li,{children:`Follow the setup wizard to connect through the Vercel Marketplace`}),`\n`]}),`\n`,_jsx(_components.p,{children:`v0 will provision the database and make it available to your app automatically.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-i-connect-dreamlit-to-my-database`,children:`How do I connect Dreamlit to my database?`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Supabase`,id:`supabase`,children:[_jsx(_components.p,{children:`If your v0 app uses Supabase, connecting is two clicks:`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Create a Dreamlit account`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.a,{href:`https://app.dreamlit.ai`,children:`app.dreamlit.ai`}),` and sign up.`]})}),_jsxs(Step,{title:`Connect via OAuth`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Connect Supabase`}),` and authorize the connection. Dreamlit securely connects to your Supabase project.`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/notikaai/adckcWobFeOatSLI/images/supabaseconnect.gif?s=fae094684d1c16f9d6ba024157359ea0`,alt:`Connecting Supabase via OAuth`,\"data-og-width\":`1408`,width:`1408`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`images/supabaseconnect.gif`,\"data-optimize\":`true`,\"data-opv\":`3`})})]})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`That’s it. 2 clicks and you’re connected.`})}),_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Need auth emails?`}),` (password reset, magic links, email verification) Check out our `,_jsx(_components.a,{href:`/guides/supabase-auth-emails`,children:`Supabase Auth Emails guide`}),` for one-click setup.`]})})]}),_jsxs(Tab,{title:`Neon`,id:`neon`,children:[_jsx(_components.p,{children:`If your v0 app uses Neon, you’ll connect with your database connection string:`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Create a Dreamlit account`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.a,{href:`https://app.dreamlit.ai`,children:`app.dreamlit.ai`}),` and sign up.`]})}),_jsx(Step,{title:`Get your connection string`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.a,{href:`https://console.neon.tech`,children:`Neon Console`}),`, go to your project and copy the connection string from the dashboard.`]})}),_jsx(Step,{title:`Connect in Dreamlit`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Connect Postgres`}),` and paste your connection string. Follow the guided setup to grant Dreamlit the minimal permissions it needs.`]})})]}),_jsxs(_components.p,{children:[`For detailed setup instructions, see `,_jsx(_components.a,{href:`/configuration/data-sources/postgres#commands-to-run-to-set-up-your-dreamlit_app-database-user`,children:`commands to set up your database user`}),`.`]})]}),_jsxs(Tab,{title:`Other Postgres`,id:`other-postgres`,children:[_jsx(_components.p,{children:`For other Postgres providers (Railway, Render, etc.), you’ll connect with your connection string:`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Create a Dreamlit account`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.a,{href:`https://app.dreamlit.ai`,children:`app.dreamlit.ai`}),` and sign up.`]})}),_jsx(Step,{title:`Get your connection string`,children:_jsx(_components.p,{children:`Copy your Postgres connection string from your database provider.`})}),_jsx(Step,{title:`Connect in Dreamlit`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Connect Postgres`}),` and paste your connection string. Follow the guided setup to grant Dreamlit the minimal permissions it needs.`]})})]}),_jsxs(_components.p,{children:[`For detailed setup instructions, see `,_jsx(_components.a,{href:`/configuration/data-sources/postgres#commands-to-run-to-set-up-your-dreamlit_app-database-user`,children:`commands to set up your database user`}),`.`]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-i-create-my-first-email-workflow`,children:`How do I create my first email workflow?`}),`\n`,_jsx(_components.p,{children:`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.`}),`\n`,_jsx(Heading,{level:`3`,id:`step-1-create-the-workflow-in-dreamlit`,children:`Step 1: Create the workflow in Dreamlit`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Create Workflow`}),` and describe what you want:`]}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsx(_components.p,{children:`“Send a welcome email when a new user signs up”`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The AI generates everything: the database trigger, email template, and copy.`}),`\n`,_jsx(Frame,{caption:`The AI generates your workflow automatically`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/notikaai/ND5vtH9yB3HGk0VQ/images/new-workflow.gif?s=cf7aaa6638f6349bb3e9cf79f7512383`,alt:`AI generating a welcome email workflow`,\"data-og-width\":`1784`,width:`1784`,\"data-og-height\":`720`,height:`720`,\"data-path\":`images/new-workflow.gif`,\"data-optimize\":`true`,\"data-opv\":`3`})}),`\n`,_jsx(Heading,{level:`3`,id:`step-2-update-your-v0-app-if-needed`,children:`Step 2: Update your v0 app (if needed)`}),`\n`,_jsxs(_components.p,{children:[`Here’s the key insight: `,_jsx(_components.strong,{children:`Dreamlit securely connects to your database and reacts to changes, not your code.`}),` When a new row appears in your `,_jsx(_components.code,{children:`users`}),` or `,_jsx(_components.code,{children:`auth.users`}),` table, Dreamlit sends the email automatically.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`If you’re using Supabase Auth, users are automatically added to the `,_jsx(_components.code,{children:`auth.users`}),` table when they sign up. No extra table needed.`]})}),`\n`,_jsx(_components.p,{children:`If your v0 app already creates user records on signup, you’re done. No code changes needed.`}),`\n`,_jsx(_components.p,{children:`If you need to add a field or table for Dreamlit to use as a trigger, prompt v0:`}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsxs(_components.p,{children:[`“When a user signs up, add a row to the `,_jsx(_components.code,{children:`user_signups`}),` table with their email and name”`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Or for something like order confirmations:`}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsxs(_components.p,{children:[`“When a user completes checkout, insert a row into the `,_jsx(_components.code,{children:`orders`}),` table with the order details”`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`step-3-preview-and-publish`,children:`Step 3: Preview and publish`}),`\n`,_jsxs(_components.p,{children:[`Preview your email with real data from your database, then click `,_jsx(_components.strong,{children:`Publish`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`how-does-v0-work-with-dreamlit`,children:`How does v0 work with Dreamlit?`}),`\n`,_jsx(_components.p,{children:`Dreamlit triggers emails based on database changes. When prompting v0, focus on getting data into your database. Dreamlit handles the rest.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Good prompts for v0:`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`You want…`}),_jsx(_components.th,{children:`Prompt v0 with…`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Welcome emails`}),_jsxs(_components.td,{children:[`”Store new signups in a `,_jsx(_components.code,{children:`user_signups`}),` table”`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Order confirmations`}),_jsxs(_components.td,{children:[`”Insert order details into `,_jsx(_components.code,{children:`orders`}),` when checkout completes”`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Comment notifications`}),_jsxs(_components.td,{children:[`”Save comments to a `,_jsx(_components.code,{children:`comments`}),` table with the post_id and author”`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Activity alerts`}),_jsxs(_components.td,{children:[`”Log user actions to an `,_jsx(_components.code,{children:`activity`}),` table”`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`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.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`what-other-workflows-can-i-build`,children:`What other workflows can I build?`}),`\n`,_jsxs(_components.p,{children:[`Any workflow that triggers on a database change. Check out our `,_jsx(_components.a,{href:`/getting-started/use-cases`,children:`use cases`}),` for example prompts across welcome emails, order confirmations, reminders, internal alerts, and more.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-i-send-from-my-own-domain`,children:`How do I send from my own domain?`}),`\n`,_jsxs(_components.p,{children:[`By default, emails send from Dreamlit’s domain. To send from your own domain (like `,_jsx(_components.code,{children:`hello@yourapp.com`}),`), set up a custom email domain in minutes.`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Add your domain`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings → Email Domains`}),` and click `,_jsx(_components.strong,{children:`Add domain`}),`. Enter your domain (we recommend a subdomain like `,_jsx(_components.code,{children:`mail.yourapp.com`}),`).`]})}),_jsxs(Step,{title:`Verify automatically`,children:[_jsxs(_components.p,{children:[`Dreamlit can automatically configure your DNS records for you. Just click `,_jsx(_components.strong,{children:`Verify with your DNS provider`}),`, sign in to your provider, and authorize the changes.`]}),_jsx(Frame,{caption:`Automatic DNS setup, no manual records needed`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/notikaai/ND5vtH9yB3HGk0VQ/images/auto-dns.gif?s=ce1cca7fadcd17e41cb37a8fdce2753d`,alt:`Automated DNS verification flow`,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`720`,height:`720`,\"data-path\":`images/auto-dns.gif`,\"data-optimize\":`true`,\"data-opv\":`3`})}),_jsx(Tip,{children:_jsx(_components.p,{children:`If your DNS provider isn’t supported for automatic setup, you can add the records manually. Dreamlit shows you exactly what to add.`})})]}),_jsx(Step,{title:`Start sending`,children:_jsx(_components.p,{children:`Once verified, select your domain when creating email workflows. Your emails will now come from your own brand.`})})]}),`\n`,_jsxs(_components.p,{children:[`This improves deliverability and looks more professional to your users. `,_jsx(_components.a,{href:`/configuration/email/custom-domain`,children:`Full domain setup guide →`})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsx(Heading,{level:`3`,id:`what-if-my-v0-project-doesn’t-have-a-database`,children:`What if my v0 project doesn’t have a database?`}),`\n`,_jsxs(_components.p,{children:[`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 `,_jsx(_components.a,{href:`https://vercel.com/marketplace`,children:`Vercel Marketplace`}),` setup.`]}),`\n`,_jsx(Heading,{level:`3`,id:`which-database-should-i-choose-supabase-or-neon`,children:`Which database should I choose: Supabase or Neon?`}),`\n`,_jsxs(_components.p,{children:[`We recommend `,_jsx(_components.strong,{children:`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.`]}),`\n`,_jsx(Heading,{level:`3`,id:`why-aren’t-my-emails-sending`,children:`Why aren’t my emails sending?`}),`\n`,_jsx(_components.p,{children:`A few things to check:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Is your workflow published?`}),` Saved workflows don’t run until you click Publish.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Is the trigger table correct?`}),` v0 might have named tables differently than you prompted. Check your database to see the actual table names.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Is data being written?`}),` Check your database dashboard to confirm rows are being created.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Try the preview.`}),` Use the preview to test with sample data and verify the workflow runs.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`do-i-need-to-change-my-v0-app-code`,children:`Do I need to change my v0 app code?`}),`\n`,_jsx(_components.p,{children:`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.`}),`\n`,_jsx(Heading,{level:`3`,id:`will-my-emails-work-on-vercel’s-edge-functions`,children:`Will my emails work on Vercel’s edge functions?`}),`\n`,_jsx(_components.p,{children:`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.`}),`\n`,_jsx(Heading,{level:`3`,id:`can-i-send-slack-notifications-too`,children:`Can I send Slack notifications too?`}),`\n`,_jsxs(_components.p,{children:[`Yes. Dreamlit supports Slack alongside email. Just describe what you want: “Notify our team on Slack when a new order comes in.” `,_jsx(_components.a,{href:`/configuration/slack`,children:`Learn more about Slack →`})]}),`\n`,_jsx(Heading,{level:`3`,id:`how-do-i-test-without-emailing-real-users`,children:`How do I test without emailing real users?`}),`\n`,_jsx(_components.p,{children:`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.`}),`\n`,_jsx(Heading,{level:`3`,id:`what-if-i’m-already-using-resend-sendgrid-or-another-email-provider`,children:`What if I’m already using Resend, SendGrid, or another email provider?`}),`\n`,_jsx(_components.p,{children:`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.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Supabase Auth emails`,icon:`shield-keyhole`,href:`/guides/supabase-auth-emails`,children:_jsx(_components.p,{children:`Set up password reset, magic links, and more`})}),_jsx(Card,{title:`Email domain setup`,icon:`at`,href:`/configuration/email/custom-domain`,children:_jsx(_components.p,{children:`Send from your own domain`})}),_jsx(Card,{title:`Use cases`,icon:`lightbulb`,href:`/getting-started/use-cases`,children:_jsx(_components.p,{children:`More workflow examples`})}),_jsx(Card,{title:`Get support`,icon:`headset`,href:`/resources/getting-support`,children:_jsx(_components.p,{children:`We’re here to help`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`references`,children:`References`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://v0.dev`,children:`v0`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://vercel.com/marketplace`,children:`Vercel Marketplace`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/configuration/data-sources/supabase`,children:`Dreamlit Supabase integration`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/configuration/data-sources/postgres`,children:`Dreamlit Postgres setup guide`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://supabase.com/docs/guides/auth/auth-smtp`,children:`Supabase Auth SMTP docs`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/getting-started/use-cases`,children:`Dreamlit use cases`})}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(_components.p,{children:`Last validated: 2026-04-12`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"v0 Email: Send Notifications by Describing What You Want","sidebarTitle":"v0 Apps","description":"Add email to your v0 app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.","icon":"sparkles","href":"/guides/v0-email"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How do I add email to my v0 app?","slug":"how-do-i-add-email-to-my-v0-app","depth":2,"children":[]},{"title":"Who is this guide for?","slug":"who-is-this-guide-for","depth":2,"children":[]},{"title":"Why use Dreamlit instead of building email in v0?","slug":"why-use-dreamlit-instead-of-building-email-in-v0","depth":2,"children":[]},{"title":"What do I need before starting?","slug":"what-do-i-need-before-starting","depth":2,"children":[]},{"title":"Does my v0 project have a database?","slug":"does-my-v0-project-have-a-database","depth":2,"children":[{"title":"Supported databases","slug":"supported-databases","depth":3,"children":[]},{"title":"How do I check my database setup?","slug":"how-do-i-check-my-database-setup","depth":3,"children":[]},{"title":"How do I add a database to my v0 project?","slug":"how-do-i-add-a-database-to-my-v0-project","depth":3,"children":[]}]},{"title":"How do I connect Dreamlit to my database?","slug":"how-do-i-connect-dreamlit-to-my-database","depth":2,"children":[]},{"title":"How do I create my first email workflow?","slug":"how-do-i-create-my-first-email-workflow","depth":2,"children":[{"title":"Step 1: Create the workflow in Dreamlit","slug":"step-1-create-the-workflow-in-dreamlit","depth":3,"children":[]},{"title":"Step 2: Update your v0 app (if needed)","slug":"step-2-update-your-v0-app-if-needed","depth":3,"children":[]},{"title":"Step 3: Preview and publish","slug":"step-3-preview-and-publish","depth":3,"children":[]}]},{"title":"How does v0 work with Dreamlit?","slug":"how-does-v0-work-with-dreamlit","depth":2,"children":[]},{"title":"What other workflows can I build?","slug":"what-other-workflows-can-i-build","depth":2,"children":[]},{"title":"How do I send from my own domain?","slug":"how-do-i-send-from-my-own-domain","depth":2,"children":[]},{"title":"FAQ","slug":"faq","depth":2,"children":[{"title":"What if my v0 project doesn’t have a database?","slug":"what-if-my-v0-project-doesn’t-have-a-database","depth":3,"children":[]},{"title":"Which database should I choose: Supabase or Neon?","slug":"which-database-should-i-choose-supabase-or-neon","depth":3,"children":[]},{"title":"Why aren’t my emails sending?","slug":"why-aren’t-my-emails-sending","depth":3,"children":[]},{"title":"Do I need to change my v0 app code?","slug":"do-i-need-to-change-my-v0-app-code","depth":3,"children":[]},{"title":"Will my emails work on Vercel’s edge functions?","slug":"will-my-emails-work-on-vercel’s-edge-functions","depth":3,"children":[]},{"title":"Can I send Slack notifications too?","slug":"can-i-send-slack-notifications-too","depth":3,"children":[]},{"title":"How do I test without emailing real users?","slug":"how-do-i-test-without-emailing-real-users","depth":3,"children":[]},{"title":"What if I’m already using Resend, SendGrid, or another email provider?","slug":"what-if-i’m-already-using-resend-sendgrid-or-another-email-provider","depth":3,"children":[]}]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]},{"title":"References","slug":"references","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"notikaai","siteName":"Dreamlit AI","title":"v0 Email: Send Notifications by Describing What You Want - Dreamlit AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-18T04:42:54.056Z","originalFileLocation":"guides/v0-email.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Add email to your v0 app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Dreamlit AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"v0 Email: Send Notifications by Describing What You Want - Dreamlit AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Add email to your v0 app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Dreamlit AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://dreamlit.ai/docs/guides/v0-email\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://notikaai.mintlify.site/docs/_mintlify/api/og/v2?division=Guides\u0026amp;title=v0+Email%3A+Send+Notifications+by+Describing+What+You+Want\u0026amp;description=Add+email+to+your+v0+app+in+minutes.+Describe+what+you+want+in+plain+English%2C+and+Dreamlit+builds+the+workflow.\u0026amp;theme=cd9765a2269f5674b365d03b\u0026amp;signature=922ad4f46bee443ac0d82e4421de1df35b569845424bbf6fce5b09c91a89f553\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"v0 Email: Send Notifications by Describing What You Want - Dreamlit AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Add email to your v0 app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://notikaai.mintlify.site/docs/_mintlify/api/og/v2?division=Guides\u0026amp;title=v0+Email%3A+Send+Notifications+by+Describing+What+You+Want\u0026amp;description=Add+email+to+your+v0+app+in+minutes.+Describe+what+you+want+in+plain+English%2C+and+Dreamlit+builds+the+workflow.\u0026amp;theme=cd9765a2269f5674b365d03b\u0026amp;signature=922ad4f46bee443ac0d82e4421de1df35b569845424bbf6fce5b09c91a89f553\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Dreamlit AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#211F26\">\u003clink data-mint-head rel=\"canonical\" href=\"https://dreamlit.ai/docs/guides/v0-email\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/guides/v0-email.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://dreamlit.ai/#organization\",\"name\":\"Dreamlit AI\",\"url\":\"https://dreamlit.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/notikaai/5oYlSr6CYnDtP1nH/logo/logo.svg?fit=max\u0026auto=format\u0026n=5oYlSr6CYnDtP1nH\u0026q=85\u0026s=6a42bf3e0ba53bffd9f71388b245160d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://dreamlit.ai/docs#website\",\"name\":\"Dreamlit AI\",\"url\":\"https://dreamlit.ai/docs\",\"publisher\":{\"@id\":\"https://dreamlit.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://dreamlit.ai/docs/guides/v0-email#webpage\",\"url\":\"https://dreamlit.ai/docs/guides/v0-email\",\"name\":\"v0 Email: Send Notifications by Describing What You Want\",\"description\":\"Add email to your v0 app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\",\"dateModified\":\"2026-08-18T04:42:54.056Z\",\"isPartOf\":{\"@id\":\"https://dreamlit.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://dreamlit.ai/docs/guides/v0-email#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://dreamlit.ai/docs/guides/v0-email#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Guides\",\"item\":\"https://dreamlit.ai/docs/guides/supabase-auth-emails\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"v0 Email: Send Notifications by Describing What You Want\",\"item\":\"https://dreamlit.ai/docs/guides/v0-email\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://dreamlit.ai/docs/guides/v0-email#article\",\"headline\":\"v0 Email: Send Notifications by Describing What You Want\",\"name\":\"v0 Email: Send Notifications by Describing What You Want\",\"description\":\"Add email to your v0 app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\",\"url\":\"https://dreamlit.ai/docs/guides/v0-email\",\"mainEntityOfPage\":{\"@id\":\"https://dreamlit.ai/docs/guides/v0-email#webpage\"},\"dateModified\":\"2026-08-18T04:42:54.056Z\",\"publisher\":{\"@id\":\"https://dreamlit.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://dreamlit.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Dreamlit AI\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Dreamlit AI\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/guides/v0-email.md","siteName":"Dreamlit AI","nav":{"global":null,"tabs":[{"tab":"Dreamlit","icon":"rocket","pages":[{"title":"Dreamlit","href":"/introduction"}]},{"tab":"Dreamlit Engine (Legacy)","icon":"gears","groups":[{"group":"Get Started","pages":[{"title":"Dreamlit Engine","icon":"book-open","href":"/getting-started/introduction"},{"title":"Use cases","icon":"lightbulb","href":"/getting-started/use-cases"},{"title":"How it works","icon":"gears","href":"/getting-started/how-it-works"},{"title":"FAQ","icon":"circle-question","href":"/getting-started/faq"},{"title":"Quickstart","icon":"rocket","href":"/getting-started/quickstart"}]},{"group":"Dreamlit for...","pages":[{"title":"For vibe coders","href":"/getting-started/for-vibe-coders"},{"title":"For developers","href":"/getting-started/for-developers"},{"title":"For product teams","href":"/getting-started/for-product-teams"}]},{"group":"Guides","pages":[{"title":"How to Set Up Supabase Auth Emails with Dreamlit","sidebarTitle":"Supabase Auth Emails","icon":"bolt","href":"/guides/supabase-auth-emails"},{"title":"How to Add Emails to Your Lovable App (The Easy Way)","sidebarTitle":"Lovable Apps","icon":"heart","href":"/guides/lovable-email"},{"title":"Bolt.new Email: Send Notifications Without the Infrastructure","sidebarTitle":"Bolt.new Apps","icon":"bold","href":"/guides/bolt-email"},{"title":"Cursor Email: Send Notifications Without Breaking Your Flow","sidebarTitle":"Cursor Apps","icon":"code","href":"/guides/cursor-email"},{"title":"How to Add Emails to Your Replit App (The Easy Way)","sidebarTitle":"Replit Apps","description":"Add welcome emails, notifications, and email blasts to your Replit app. No code changes, no API keys. Just connect your database and describe what you want.","icon":"laptop-code","href":"/guides/replit-email"},{"title":"v0 Email: Send Notifications by Describing What You Want","sidebarTitle":"v0 Apps","icon":"sparkles","href":"/guides/v0-email"},{"title":"Figma Make Email: Design-to-App Meets AI-Powered Notifications","sidebarTitle":"Figma Make Apps","description":"Add email to your Figma Make app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.","icon":"figma","href":"/guides/figma-make-email"}]},{"group":"Configuration","pages":[{"group":"Data Sources","pages":[{"title":"Supabase","href":"/configuration/data-sources/supabase"},{"title":"PostgreSQL","href":"/configuration/data-sources/postgres"},{"title":"Shopify","href":"/configuration/data-sources/shopify"}]},{"group":"Email","pages":[{"title":"Overview","href":"/configuration/email/index"},{"title":"Custom domain","sidebarTitle":"Custom domain","href":"/configuration/email/custom-domain"},{"title":"Brand styles","sidebarTitle":"Brand styles","href":"/configuration/email/brand-styles"},{"title":"Managing unsubscribed contacts","href":"/configuration/email/managing-unsubscribed-contacts"}]},{"title":"Slack","href":"/configuration/slack"}]},{"group":"Workflow","pages":[{"title":"Basics","href":"/workflow/basics"},{"title":"Preview","href":"/workflow/test-interface"},{"title":"Publishing workflows","href":"/workflow/publishing-workflows"},{"title":"Inspecting inflight workflows","href":"/workflow/inspecting-inflight-workflows"},{"title":"Broadcast","href":"/workflow/broadcast"}]},{"group":"Step types","pages":[{"title":"Database trigger","href":"/steps/database-trigger"},{"title":"Repeating trigger","href":"/steps/repeating-trigger"},{"title":"Supabase Auth trigger","href":"/steps/supabase-auth-trigger"},{"title":"Wait","href":"/steps/wait"},{"title":"Query","href":"/steps/query"},{"title":"Send email","href":"/steps/send-email"},{"title":"Send Slack","href":"/steps/send-slack"}]},{"group":"Troubleshooting","pages":[{"title":"Fix Supabase RLS Access for Dreamlit","sidebarTitle":"Supabase RLS","href":"/troubleshooting/fix-supabase-rls-access"}]},{"group":"MCP","pages":[{"title":"MCP server for AI agents","sidebarTitle":"Overview","href":"/resources/mcp-server"},{"group":"Quick Start","expanded":false,"pages":[{"title":"Dreamlit MCP for Claude Code","sidebarTitle":"Claude Code","href":"/resources/mcp-server/claude-code"},{"title":"Dreamlit MCP for Claude Desktop","sidebarTitle":"Claude Desktop","href":"/resources/mcp-server/claude-desktop"},{"title":"Dreamlit MCP for Codex","sidebarTitle":"Codex","href":"/resources/mcp-server/codex"},{"title":"Dreamlit MCP for Cursor","sidebarTitle":"Cursor","href":"/resources/mcp-server/cursor"},{"title":"Dreamlit MCP for OpenClaw","sidebarTitle":"OpenClaw","href":"/resources/mcp-server/openclaw"},{"title":"Dreamlit MCP for Hermes Agent","sidebarTitle":"Hermes","href":"/resources/mcp-server/hermes"},{"title":"Dreamlit MCP for Gemini CLI","sidebarTitle":"Gemini CLI","href":"/resources/mcp-server/gemini-cli"},{"title":"Dreamlit MCP for VS Code","sidebarTitle":"VS Code","href":"/resources/mcp-server/vs-code"},{"title":"Dreamlit MCP for Windsurf","sidebarTitle":"Windsurf","href":"/resources/mcp-server/windsurf"},{"title":"Dreamlit MCP for Zed","sidebarTitle":"Zed","href":"/resources/mcp-server/zed"},{"title":"Dreamlit MCP for Lovable","sidebarTitle":"Lovable","href":"/resources/mcp-server/lovable"},{"title":"Dreamlit MCP for Bolt","sidebarTitle":"Bolt","href":"/resources/mcp-server/bolt"},{"title":"Dreamlit MCP for Replit","sidebarTitle":"Replit","href":"/resources/mcp-server/replit"},{"title":"Dreamlit MCP for v0","sidebarTitle":"v0","href":"/resources/mcp-server/v0"}]}]},{"group":"Resources","pages":[{"title":"Deliverability","href":"/resources/deliverability"},{"title":"Security","href":"/resources/security"},{"title":"Contact us","href":"/resources/getting-support"},{"title":"Media resources","href":"/resources/media"},{"title":"Pricing","href":"/resources/pricing"},{"title":"System status","url":"https://status.dreamlit.ai","href":"/resources/system-status"},{"title":"Privacy policy","url":"https://dreamlit.ai/privacy-policy","href":"/resources/privacy-policy"},{"title":"Terms of service","url":"https://www.dreamlit.ai/terms-of-service","href":"/resources/terms-of-service"}]}]},{"tab":"Learning Center","icon":"graduation-cap","pages":[{"title":"Learning Center","href":"/learn/overview"}]}]},"basePath":"","title":"v0 Email: Send Notifications by Describing What You Want - Dreamlit AI","buildId":"dpl_2AK98Hxhwu4fUXpx9atbv41cC328","deploymentId":"dpl_2AK98Hxhwu4fUXpx9atbv41cC328","dynamics":["a74be98ba7","07c022d89b"],"chunks":["zoom-image-lightbox-T84NdC3b.js","lightbox-handle-r17bVUz3.js","Frame-Buk2KjK6.js","DynamicMarkdown-DYYZTGpa.js"]}