Skip to content

Refac7/AnonBoard

Repository files navigation

匿名留言板

基于 React + Next.js + shadcn/ui 的匿名留言板,数据存储在 Notion 数据库。

功能特性

  • ✅ 匿名留言,不保存任何身份信息
  • ✅ Markdown 支持(代码高亮、列表、链接等)
  • ✅ 回复功能(支持一级嵌套)
  • ✅ 边缘缓存 10 分钟
  • ✅ 反垃圾信息过滤
  • ✅ 发送频率限制(每 IP 每 10 分钟 5 条)
  • ✅ 管理员删除功能

快速开始

1. 创建 Notion 集成

  1. 访问 Notion My Integrations
  2. 点击 "New integration"
  3. 填写名称,选择 workspace
  4. 复制 "Internal Integration Secret"

2. 配置环境变量

cp .env.local.example .env.local

编辑 .env.local

NOTION_API_KEY=你的集成密钥
NOTION_PARENT_PAGE_ID=父页面ID  # 数据库将创建在此页面下
ADMIN_SECRET=你的管理员密钥

获取父页面 ID

  1. 在 Notion 中打开要放置数据库的页面
  2. 复制 URL 中的页面 ID(32位字符串)
    • URL 格式: https://notion.so/your-workspace/PAGE_ID?v=...

3. 一键创建数据库

npm run setup:notion

这会自动创建数据库并更新 .env.local

4. 启动开发服务器

npm run dev

访问 http://localhost:3000

管理员模式

访问 http://localhost:3000?admin=你的管理员密钥 启用管理员模式,可以删除留言。

部署

推荐部署到 Vercel:

  1. Push 到 GitHub
  2. 在 Vercel 导入项目
  3. 配置环境变量
  4. 部署

技术栈

  • 前端: React 19 + Next.js 16
  • UI: shadcn/ui + Tailwind CSS
  • 数据库: Notion API
  • 缓存: Edge Runtime (10 分钟)
  • 语言: TypeScript

About

基于 React + Next.js + shadcn/ui 的匿名留言板,数据存储在 Notion 数据库。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors