首页提供可循环歌词卡、Music Dock 入口与 Gallery / FNDS 预览
solidays — Next.js 博客模板
作者 francis1104
Solidays 是一个基于 Next.js App Router、Tailwind CSS 和 Framer Motion 的最小展示站点,包含歌词卡首页、游戏片段 Gallery、Fear and Dreams 图片卡片页与 About 页,并可构建为 Cloudflare Worker。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
包含 `/gallery` 游戏片段 Archive 和 `/fnds` Fear and Dreams 图片卡片页
使用 Next.js App Router、Tailwind CSS 和 Framer Motion
`cloudflare-worker` 分支通过 OpenNext for Cloudflare 构建为 Cloudflare Worker
Worker 已绑定 R2 桶、Workers AI、D1 和留言限流,匿名留言接入 Turnstile
支持全局主题切换、流星背景和可选音乐 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,包含读取会话、提交留言和结束会话三个端点。
适合你的项目吗?
适用场景
- 展示可循环歌词卡与音乐相关入口
- 浏览游戏片段 Archive
- 查看 Fear and Dreams 图片卡片
- 通过匿名留言接口提交留言并读取当前会话
- 在 Cloudflare Worker 上部署该展示站点
适合人群
- 需要最小展示站点结构的前端项目
- 使用 Next.js App Router 与 Tailwind CSS 的开发者
- 计划通过 OpenNext for Cloudflare 部署到 Cloudflare Worker 的团队
- 需要 R2、D1、Workers AI 与 Turnstile 集成示例的开发者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 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
Cloudflare Worker 构建与部署命令:`worker:build`、`worker:dev`、`worker:deploy`,Worker 配置在 `wrangler.jsonc`,R2 接入步骤见 `docs/cloudflare/resources-and-bindings.md`
- 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
`TURNSTILE_SECRET_KEY` 是服务端 Secret:本地放在未提交的 `.dev.vars`,生产通过 `wrangler secret put TURNSTILE_SECRET_KEY` 写入 Worker,不要写入 Git
- 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 原文
https://github.com/francis1104/solidays/blob/cloudflare-worker/LICENSEhttps://github.com/francis1104/solidays/blob/cloudflare-worker/README.md`TURNSTILE_SECRET_KEY` 是服务端 Secret:本地开发放在未提交的 `.dev.vars`,生产通过
README 原文
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)。
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

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 · 启动器
