独立博客聚合发现平台。通过 RSS 航线连接分散的岛屿,让优质内容互相发现。
- 岛屿入驻 — 提交独立博客进行收录申请,自动解析 RSS 获取最新文章
- 审核管理 — 管理员后台审核、编辑、批准或驳回入驻申请
- 邮件通知 — 申请提交、审核通过/驳回时自动发送邮件通知(支持 QQ 邮箱 SMTP)
- 发现漂流瓶 — 精选优质内容展示
- 最热访问 — 根据浏览量自动排序热门文章
- 随机航行 — 一键随机跳转到某个收录博客
- 留言板 — 访客留言 + 管理员回复功能
- 团队展示 — 项目维护成员公开页面
- 标签分类 — 可自定义内容分类标签
- 定时抓取 — 可配置定时自动刷新所有 RSS 源
- 验证码保护 — 数学算式验证码 + Honeypot 双重反垃圾机制
| 类型 | 技术 |
|---|---|
| 前端 | React 19 + TypeScript + Vite |
| 样式 | Tailwind CSS v4 |
| 动效 | Motion (Framer Motion) |
| 后端 | Express + tsx |
| RSS | rss-parser |
| 邮件 | nodemailer |
| 路由 | React Router v7 |
环境要求:Node.js v20+
# 安装依赖
npm install
# 启动开发服务器(含 CSS watch)
npm run dev
# 仅启动后端
npm run dev:app
# 仅启动 CSS watch
npm run dev:css
# 构建生产版本
npm run build
# 运行生产版本
npm run start服务器运行在 http://localhost:3000
创建 .env.local 文件(可选):
# 管理员初始账号(选填,默认 admin / admin1990)
ADMIN_USERNAME=admin
ADMIN_PASSWORD=your_password邮件设置在管理员后台「邮件设置」页面中配置(SMTP 主机、端口、用户名、授权码等)。
blogfind/
├── server.ts # Express 服务端(API + Vite 中间件)
├── vite.config.ts # Vite 构建配置
├── tsconfig.json # TypeScript 配置
├── messages.json # 留言板数据持久化
├── src/
│ ├── App.tsx # 主组件(路由、导航、页脚)
│ ├── main.tsx # 应用入口
│ ├── index.css # 全局样式 + Tailwind
│ ├── hooks.ts # 自定义 Hooks + 共享类型
│ ├── utils.ts # 工具函数
│ ├── components/
│ │ └── ui.tsx # 通用 UI 组件(Card, Button)
│ └── pages/
│ ├── Home.tsx # 首页
│ ├── Admin.tsx # 管理后台
│ ├── Apply.tsx # 登岛申请
│ ├── Islands.tsx # 全部岛屿
│ ├── IslandDetail.tsx # 岛屿详情
│ ├── Feeds.tsx # 全部航线
│ ├── Status.tsx # 进度查询
│ ├── About.tsx # 关于群岛
│ ├── Team.tsx # 维护团队
│ ├── Guestbook.tsx # 留言板
│ ├── Agreement.tsx # 入驻协议
│ └── Privacy.tsx # 隐私协议
访问 /admin 或点击页脚「管理」链接进入管理后台。页脚入口仅在页面底部显示,不在主导航中。默认账号 admin,密码 admin1990(请及时修改)。
MIT License