Next.jsReact博客启动器

solidays — Next.js 博客模板

作者 francis1104

Solidays 是一个基于 Next.js App Router、Tailwind CSS 和 Framer Motion 的最小展示站点,包含歌词卡首页、游戏片段 Gallery、Fear and Dreams 图片卡片页与 About 页,并可构建为 Cloudflare Worker。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-14查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

首页提供可循环歌词卡、Music Dock 入口与 Gallery / FNDS 预览

02

包含 `/gallery` 游戏片段 Archive 和 `/fnds` Fear and Dreams 图片卡片页

03

使用 Next.js App Router、Tailwind CSS 和 Framer Motion

04

`cloudflare-worker` 分支通过 OpenNext for Cloudflare 构建为 Cloudflare Worker

05

Worker 已绑定 R2 桶、Workers AI、D1 和留言限流,匿名留言接入 Turnstile

06

支持全局主题切换、流星背景和可选音乐 Dock

模板详细介绍

Solidays 是一个以展示为主的最小站点,README 说明其当前保留的页面包括:`/` 提供可循环歌词卡、Music Dock 入口以及 Gallery / FNDS 预览;`/gallery` 为游戏片段 Archive;`/fnds` 为 Fear and Dreams 图片卡片页;`/about` 说明站点存在的原因。站点还包含全局主题切换、流星背景和可选音乐 Dock。

技术栈方面,README 写明项目使用 Next.js App Router、Tailwind CSS 和 Framer Motion,`cloudflare-worker` 分支通过 OpenNext for Cloudflare 构建为 Cloudflare Worker。Worker 已绑定 `solidays-media` R2 桶、Workers AI、`solidays-chat` D1 和留言限流,匿名留言提交接入 Turnstile。生产环境使用 `solidays.win`,`workers.dev` 默认地址已关闭。

README 也说明了若干限制:`NEXT_PUBLIC_API_URL` 未使用,只出现在 `.env.example` / README 中,app 代码不读取;首页歌词走 `data/cards.ts`,`/api/cards` 仍是未来 D1 边界;`NEXT_PUBLIC_MUSIC_API_URL` 用于过渡期歌曲解析,卡片若有 `audioKey` 则优先走私有 `/media`,未设置且没有 `audioKey` 时隐藏 Music Dock,卡片 Play 显示「暂无音频」。聊天接口当前是匿名留言 V1,包含读取会话、提交留言和结束会话三个端点。

Next.js博客启动器

适合你的项目吗?

适用场景

  • 展示可循环歌词卡与音乐相关入口
  • 浏览游戏片段 Archive
  • 查看 Fear and Dreams 图片卡片
  • 通过匿名留言接口提交留言并读取当前会话
  • 在 Cloudflare Worker 上部署该展示站点

适合人群

  • 需要最小展示站点结构的前端项目
  • 使用 Next.js App Router 与 Tailwind CSS 的开发者
  • 计划通过 OpenNext for Cloudflare 部署到 Cloudflare Worker 的团队
  • 需要 R2、D1、Workers AI 与 Turnstile 集成示例的开发者

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    本地开发使用仓库内固定的 Yarn 3.6.1:`node .yarn/releases/yarn-3.6.1.cjs install`,复制 `.env.example` 为 `.env.local`,再运行 `node .yarn/releases/yarn-3.6.1.cjs dev --hostname 127.0.0.1 --port 3001`

  2. 2

    Cloudflare Worker 构建与部署命令:`worker:build`、`worker:dev`、`worker:deploy`,Worker 配置在 `wrangler.jsonc`,R2 接入步骤见 `docs/cloudflare/resources-and-bindings.md`

  3. 3

    环境变量包括 `NEXT_PUBLIC_SITE_URL`、`NEXT_PUBLIC_R2_PUBLIC_URL`、`NEXT_PUBLIC_MUSIC_API_URL`、`NEXT_PUBLIC_TURNSTILE_SITE_KEY`;`NEXT_PUBLIC_API_URL` 未使用

  4. 4

    `TURNSTILE_SECRET_KEY` 是服务端 Secret:本地放在未提交的 `.dev.vars`,生产通过 `wrangler secret put TURNSTILE_SECRET_KEY` 写入 Worker,不要写入 Git

  5. 5

    匿名留言接口为 `GET /api/chat/conversation`、`POST /api/chat/messages`、`POST /api/chat/conversation/close`,详细说明见 `docs/features/anonymous-chat/backend-implementation.md`

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 部署为 Cloudflare Worker 需要绑定 R2 桶、Workers AI、D1 数据库等 Cloudflare 资源,并参考文档完成接入配置。
  • 匿名留言提交依赖 Turnstile 验证,需要配置 Turnstile 相关密钥才能使用留言功能。
  • 生产环境使用 solidays.win 域名,workers.dev 默认地址已关闭,部署时需自行准备并绑定自定义域名。
  • 未设置 NEXT_PUBLIC_MUSIC_API_URL 且卡片没有 audioKey 时会隐藏 Music Dock,卡片播放显示「暂无音频」,音乐功能受限。
  • TURNSTILE_SECRET_KEY 为服务端密钥,本地需放在未提交的 .dev.vars,生产需通过 wrangler secret put 写入,不能提交到 Git。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

[`docs/cloudflare/resources-and-bindings.md`](docs/cloudflare/resources-and-bindings.md)。当前 Worker 已绑定

README 原文

`solidays-media` R2 桶、Workers AI、`solidays-chat` D1 和留言限流;匿名留言提交还接入了

README 原文

Turnstile。生产环境使用 `solidays.win`,`workers.dev` 默认地址已关闭。

README 原文

- `NEXT_PUBLIC_MUSIC_API_URL`:过渡期歌曲解析;卡片若有 `audioKey` 则优先走私有 `/media`。未设置且没有 `audioKey` 时隐藏 Music Dock,卡片 Play 显示「暂无音频」

README 原文

`TURNSTILE_SECRET_KEY` 是服务端 Secret:本地开发放在未提交的 `.dev.vars`,生产通过

README 原文
https://github.com/francis1104/solidays/blob/cloudflare-worker/LICENSEhttps://github.com/francis1104/solidays/blob/cloudflare-worker/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-14。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 85 / 100
技术栈
Next.js · React
网站类型
博客 · 启动器
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-09-08
截图检查日期
2026-10-14

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15

查看当时使用的来源资料

SHA-256: 7197350be12378a72681bb41b4faa4f103d06c0051c0f79408784384cc76bb61

2026-10-14T12:41:14.241Z

来源文件 / 仓库
# Solidays Worker

这是 Solidays 的最小展示站点,当前保留:

- `/`:可循环歌词卡、Music Dock 入口,以及 Gallery / FNDS 预览
- `/gallery`:游戏片段 Archive
- `/fnds`:Fear and Dreams 图片卡片页
- `/about`:这个站为什么存在
- 全局主题切换、流星背景和可选音乐 Dock

项目使用 Next.js App Router、Tailwind CSS 和 Framer Motion。`cloudflare-worker` 分支通过
[OpenNext for Cloudflare](https://opennext.js.org/cloudflare) 构建为 Cloudflare Worker。

## 本地开发

```bash
node .yarn/releases/yarn-3.6.1.cjs install
cp .env.example .env.local
node .yarn/releases/yarn-3.6.1.cjs dev --hostname 127.0.0.1 --port 3001
```

打开 <http://127.0.0.1:3001>。项目固定使用仓库内的 Yarn 3.6.1,不生成 `package-lock.json`。

## Cloudflare Worker

```bash
node .yarn/releases/yarn-3.6.1.cjs worker:build
node .yarn/releases/yarn-3.6.1.cjs worker:dev
node .yarn/releases/yarn-3.6.1.cjs worker:deploy
```

Worker 配置在 `wrangler.jsonc`,R2 的接入步骤见
[`docs/cloudflare/resources-and-bindings.md`](docs/cloudflare/resources-and-bindings.md)。当前 Worker 已绑定
`solidays-media` R2 桶、Workers AI、`solidays-chat` D1 和留言限流;匿名留言提交还接入了
Turnstile。生产环境使用 `solidays.win`,`workers.dev` 默认地址已关闭。

## 环境变量

复制 `.env.example` 后按需设置:

- `NEXT_PUBLIC_SITE_URL`:站点 URL
- `NEXT_PUBLIC_R2_PUBLIC_URL`:R2 公共域名;设置后 `/fnds` 使用 R2 对象 key
- `NEXT_PUBLIC_API_URL`:**未使用**(只出现在 `.env.example` / README;app 代码不读。首页歌词走 `data/cards.ts`,`/api/cards` 仍是未来 D1 边界)
- `NEXT_PUBLIC_MUSIC_API_URL`:过渡期歌曲解析;卡片若有 `audioKey` 则优先走私有 `/media`。未设置且没有 `audioKey` 时隐藏 Music Dock,卡片 Play 显示「暂无音频」
- `NEXT_PUBLIC_TURNSTILE_SITE_KEY`:匿名留言 Widget 的公开 Site Key;生产值位于版本化的
  `.env.production`,本地开发使用 `.env.local` 中的官方 dummy key

`TURNSTILE_SECRET_KEY` 是服务端 Secret:本地开发放在未提交的 `.dev.vars`,生产通过
`wrangler secret put TURNSTILE_SECRET_KEY` 写入 Worker,不要写入 Git。

聊天接口当前是匿名留言 V1:`GET /api/chat/conversation` 读取当前会话,
`POST /api/chat/messages` 提交留言,`POST /api/chat/conversation/close` 结束当前会话。
详细说明见 [`docs/features/anonymous-chat/backend-implementation.md`](docs/features/anonymous-chat/backend-implementation.md)。
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。