邮箱订阅表单将数据写入 Supabase 的 "Email collection" 表
Waitlist-For-Saas — Next.js SaaS模板
作者 shubh-io
Waitlist-For-Saas 是一个基于 Next.js 的 SaaS 等待名单模板,使用 Supabase 存储邮箱、Upstash Redis 做限流,README 提供建表 SQL 与本地运行步骤。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
表结构含自增 id、唯一 email 与 created_at 字段,并建立 email 索引
启用行级安全策略,允许匿名角色插入和查询该表
通过 Upstash Redis 实现限流,需配置 REST URL 与 Token
README 提供 Supabase SQL Editor 建表 SQL 和 setup-database.js 脚本两种初始化方式
模板详细介绍
该模板用于搭建 SaaS 产品的等待名单页面,核心是一个邮箱订阅表单。数据写入 Supabase 的 "Email collection" 表,表结构包含自增 id、唯一 email 和 created_at 字段,并启用行级安全策略,允许匿名角色插入和查询。README 还提到使用 Upstash Redis 做限流,需要在环境变量中配置对应的 REST URL 与 Token。
首次使用前必须先创建数据库表:推荐在 Supabase SQL Editor 中执行 README 给出的 SQL;如果持有 service role key,也可以把它加入 .env.local 后运行 node setup-database.js 完成建表。之后执行 yarn install、yarn dev,访问 http://localhost:3000 即可测试订阅表单。README 未说明部署流程、页面视觉结构、表单校验细节或除邮箱订阅外的其他功能。
适合你的项目吗?
适用场景
- 为尚未上线的 SaaS 产品收集潜在用户邮箱
- 在本地按 README 步骤运行并测试订阅表单的写入流程
- 在 Supabase 中查看已收集的等待名单邮箱记录
适合人群
- 需要快速搭建 SaaS 等待名单页面的开发者
- 已使用或愿意注册 Supabase 与 Upstash Redis 的团队
- 希望用 Next.js 项目承载邮箱订阅表单的开发者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
先在 Supabase SQL Editor 执行 README 提供的建表 SQL,或在 .env.local 中加入 SUPABASE_SERVICE_ROLE_KEY 后运行 node setup-database.js
- 2
在 .env.local 配置 NEXT_PUBLIC_SUPABASE_URL、NEXT_PUBLIC_SUPABASE_ANON_KEY、UPSTASH_REDIS_REST_URL、UPSTASH_REDIS_REST_TOKEN
- 3
依次运行 yarn install 和 yarn dev,然后访问 http://localhost:3000 测试订阅表单
- 4
若出现 "Could not find the table" 或 "Database not set up",说明表未创建,需按 README 的 Option 1 执行 SQL
- 5
若出现限流相关错误,检查 .env.local 中的 Redis 凭据
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 使用前必须在 Supabase 中创建数据库表,否则应用无法正常工作。
- 若采用脚本方式初始化数据库,需要在 .env.local 中配置 SUPABASE_SERVICE_ROLE_KEY。
- 必须配置 Supabase 项目 URL 环境变量。
- 必须配置 Supabase 匿名密钥环境变量。
- 必须配置 Upstash Redis REST URL 环境变量,用于限流。
- 必须配置 Upstash Redis REST Token 环境变量,用于限流。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
Before using this app, you NEED to create the database table in Supabase:
README 原文
1. Add `SUPABASE_SERVICE_ROLE_KEY` to your `.env.local`
README 原文
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
README 原文
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
README 原文
UPSTASH_REDIS_REST_URL=your_redis_url
README 原文
https://github.com/shubh-io/Waitlist-For-Saas/blob/master/LICENSEhttps://github.com/shubh-io/Waitlist-For-Saas/blob/master/README.mdUPSTASH_REDIS_REST_TOKEN=your_redis_token
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-14。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 88 / 100
- 技术栈
- Next.js · React
- 网站类型
- SaaS · 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2025-11-29
- 截图检查日期
- 2026-10-14
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15
查看当时使用的来源资料
SHA-256: a458e67dd5e0e4a331d9389559ea0c19fb5aa98467c9994fc1e360e84c754f39
2026-10-14T11:41:55.337Z
来源文件 / 仓库# Quick Setup Guide ## First Time Setup Before using this app, you NEED to create the database table in Supabase: ### Option 1: Using Supabase Dashboard (Recommended - 1 minute) 1. Go to [Supabase SQL Editor](https://supabase.com/dashboard/project/_/sql) 2. Paste the SQL below and click "Run" 3. And you're DONE! ```sql CREATE TABLE IF NOT EXISTS "Email collection" ( id BIGSERIAL PRIMARY KEY, email TEXT UNIQUE NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_email_collection_email ON "Email collection"(email); ALTER TABLE "Email collection" ENABLE ROW LEVEL SECURITY; CREATE POLICY "Allow public insert" ON "Email collection" FOR INSERT TO anon WITH CHECK (true); CREATE POLICY "Allow public select" ON "Email collection" FOR SELECT TO anon USING (true); GRANT INSERT, SELECT ON "Email collection" TO anon; GRANT USAGE, SELECT ON SEQUENCE "Email collection_id_seq" TO anon; ``` ### Option 2: Using Setup Script (If you have service role key) 1. Add `SUPABASE_SERVICE_ROLE_KEY` to your `.env.local` 2. Run: `node setup-database.js` 3. Done --- ## Environment Variables Required Make sure your `.env.local` has: ```bash NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key UPSTASH_REDIS_REST_URL=your_redis_url UPSTASH_REDIS_REST_TOKEN=your_redis_token ``` --- ## After Setup 1. Run `yarn install` 2. Run `yarn dev` 3. Visit `http://localhost:3000` 4. Test the email subscription form!! --- ## Troubleshooting **Error: "Could not find the table"** - Run the SQL above in your Supabase SQL Editor **Error: "Database not set up"** - The table doesn't exist. Follow Option 1 above. **Rate limiting errors** - Check your Redis credentials in `.env.local` Enjoyyy!
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

ai-website-cloner-template
Clone any website with one command using AI coding agents
Next.js · 启动器

Next.js SaaS Starter
Next.js SaaS Starter 是 Next.js 官方维护的 SaaS 起点模板,定位介于学习资源和可直接部署的脚手架之间。
Next.js · SaaS

Next.js Commerce
Next.js Commerce 是 Vercel 团队维护的电商启动模板,基于 Next.js App Router 构建,采用服务端渲染、React Server Components、Server Actions …
Next.js · 电商

Next-js-Boilerplate
Next-js-Boilerplate 是一个面向 Next.js 16、Tailwind CSS 4 和 TypeScript 的启动器,核心定位是开发者体验优先。
Next.js · 启动器

tailwind-nextjs-starter-blog
tailwind-nextjs-starter-blog 是一个面向个人技术博客的 Next.js 与 Tailwind CSS 启动模板,其 v2 版本基于 App Router 与 React Server Comp…
Next.js · 博客

next-forge
Production-grade Turborepo template for Next.js apps.
Next.js · 启动器
