microCMS 集成:文章与标签获取集中在 src/lib/api.ts,并通过适配器映射 API 结构为应用内类型
nextjs-portfolio-blog-template — Next.js 作品集模板
作者 rymetry
基于 Next.js App Router 与 microCMS 的 Portfolio & Blog 模板,包含文章列表、搜索、标签筛选、相关文章、草稿预览、SEO 元数据、JSON-LD、RSS、站点地图与 CSP 报告模式等实现。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
博客功能:文章列表支持搜索、标签筛选与分页,详情页含作者、日期、标签、目录、相关文章与前后导航
SEO 与分发:generateMetadata 生成 title/description/canonical/OGP/Twitter 卡片,自动输出 JSON-LD,提供 sitemap、robots 与 RSS 2.0 的 feed.xml
Draft Mode 预览:通过 api/draft/enable|disable 与 microCMS 预览 API 配合,启用时显示横幅并即时获取下稿内容
缓存策略:普通页面使用 'use cache' 与 cacheLife/cacheTag,再验证间隔 300 秒;Draft Mode 路径使用 no-store
安全头与 CSP:CSP 默认 report-only,可通过 CSP_MODE 切换 enforce;production 启用 HSTS,并用 Permissions-Policy 禁用部分浏览器功能
模板详细介绍
该模板面向同时需要作品集与博客的站点,使用 Next.js 16 App Router、React 19.2、Tailwind CSS v4 与 microCMS 无头 CMS 构建。README 说明其包含首页 Hero、Projects 列表、About/Contact 页面,以及文章列表(搜索、标签筛选、分页)、文章详情(作者、日期、标签、目录、相关文章、前后导航)、HTML 内容清洗、代码高亮与行号。数据获取集中在 src/lib/api.ts,并通过适配器把 microCMS 的 API 结构映射为应用内类型;portfolio-config.ts 与 projects.ts 用于替换个人资料与项目数据。
SEO 与分发方面,模板使用 generateMetadata/Metadata API 生成 title、description、canonical、OGP 与 Twitter 卡片,自动输出 Article、Breadcrumb、Blog 的 JSON-LD,提供 sitemap.ts、robots.ts 与 RSS 2.0 的 feed.xml 路由,并用 next/image 优化图片。Draft Mode 预览通过 api/draft/enable|disable 与 microCMS 预览 API 配合,启用时显示横幅,draftKey/contentId 路径以 no-store 获取最新内容;普通页面使用 'use cache' 与 cacheLife/cacheTag,再验证间隔为 300 秒。
需要留意 README 明确指出的限制:Contact 表单目前仅为 UI 模拟,未连接保存接口;microCMS Webhook 即时失效(如 revalidateTag)需自行补充;CSP 默认 report-only,需按步骤切换到 enforce;HSTS 仅在 production 生效。环境变量方面,NEXT_PUBLIC_SITE_URL 未设置时 production 会回退到 VERCEL_URL,否则构建失败;SITE_URL 不受支持;ALLOW_LOCALHOST_SITE_URL_FOR_BUILD 仅限本地验证。
适合你的项目吗?
适用场景
- 需要同时展示作品集与博客的个人或团队站点,并希望用 microCMS 管理文章与标签
- 需要文章搜索、标签筛选、分页、相关文章与前后导航等博客浏览体验的项目
- 需要 Draft Mode 预览 microCMS 下稿内容,并在页面中显示预览状态提示
- 需要自动生成 SEO 元数据、JSON-LD、站点地图与 RSS 2.0 订阅源的站点
- 需要以 report-only 方式逐步引入 CSP,并配置 HSTS 与 Permissions-Policy 等安全头的部署
适合人群
- 使用 Next.js App Router 并愿意接入 microCMS 作为内容源的开发者
- 需要可替换个人资料与项目数据的作品集页面(portfolio-config.ts / projects.ts)的站点
- 需要文章列表搜索、标签筛选、分页与文章详情目录、相关文章、前后导航的博客
- 需要草稿预览、SEO 元数据、JSON-LD、RSS 与站点地图等分发能力的项目
- 需要在 Vercel 等标准 Next.js 部署流程上配置环境变量并逐步启用 CSP 的团队
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
在根目录创建 .env.local,至少设置 MICROCMS_API_KEY、MICROCMS_ARTICLES、MICROCMS_TAGS;使用预览时设置 MICROCMS_PREVIEW_SECRET;使用 GA4 时设置 NEXT_PUBLIC_GA_MEASUREMENT_ID
- 2
NEXT_PUBLIC_SITE_URL 用于生成 canonical/OGP/RSS URL;production 未设置时回退到 VERCEL_URL,否则构建失败;SITE_URL 不受支持,设置后会报错
- 3
ALLOW_LOCALHOST_SITE_URL_FOR_BUILD=1 仅限本地验证,与 VERCEL=1 或 CI 同时使用会 fail-fast
- 4
初始定制可修改 src/lib/portfolio-config.ts(姓名、头衔、简介、SNS、关注领域)、src/lib/projects.ts(项目卡片内容)以及 public/placeholder*.{svg,png,jpg} 占位图
- 5
Contact 表单目前为 UI 模拟,需自行连接 Route Handler 或外部表单服务;microCMS Webhook 即时失效(如 revalidateTag)需按需补充实现
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 需在根目录创建 .env.local 并配置 microCMS 相关环境变量(API Key、文章与标签端点 URL)才能运行。
- 使用 Draft Mode 预览功能需额外设置 MICROCMS_PREVIEW_SECRET,并在 microCMS 侧配置 Web 预览。
- 如需 GA4 统计,需自行提供 NEXT_PUBLIC_GA_MEASUREMENT_ID。
- production 环境必须设置 NEXT_PUBLIC_SITE_URL,否则回退 VERCEL_URL,两者都缺失时构建失败。
- SITE_URL 环境变量不受支持,设置后启动时会报错。
- ALLOW_LOCALHOST_SITE_URL_FOR_BUILD=1 仅限本地验证,与 VERCEL=1 或 CI 同时使用会 fail-fast。
- test 脚本执行 bun test,因此即使使用 npm test 也需要安装 Bun。
- 本番环境在 microCMS 获取失败时 fail-fast,不会静默输出空数据。
- CSP 默认处于 report-only 模式,仅收集违规而不拦截,需手动切换为 enforce 才实际阻断。
- Strict-Transport-Security 仅在 production 环境生效。
- 启用 includeSubDomains 前需确认所有子域均已使用 HTTPS 运行。
- Contact 表单目前仅为 UI 模拟,不会保存提交内容,需自行接入 Route Handler 或外部表单服务。
- microCMS Webhook 即时失效(如 revalidateTag)需按需自行补充实现。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
ルートに `.env.local` を作成し、最低限以下を設定します。
README 原文
MICROCMS_PREVIEW_SECRET=your-preview-secret
README 原文
NEXT_PUBLIC_GA_MEASUREMENT_ID=G-XXXXXXXXXX # GA4 を利用する場合のみ
README 原文
- `NEXT_PUBLIC_SITE_URL` を指定すると canonical / OGP / RSS URL が正しく生成されます。production で未設定の場合は `VERCEL_URL` を自動利用し、それも無い場合は fail-fast でビルドエラーになります。
README 原文
- `SITE_URL` は非サポートです。設定しても利用されず、起動時にエラーになります。
README 原文
- `ALLOW_LOCALHOST_SITE_URL_FOR_BUILD=1` はローカル検証専用です。`VERCEL=1` または truthy `CI`(`true|1|yes`)と併用すると fail-fast します。
README 原文
- `test` スクリプトは `bun test` を実行するため、`npm test` を使う場合も Bun が必要です。
README 原文
- 本番環境では microCMS 取得失敗時に fail-fast で検知し、空データを静かに配信しない方針です。
README 原文
- `report-only`(デフォルト): ブロックせず違反を収集
README 原文
- `Strict-Transport-Security` は production のみ有効です(`max-age=15552000; includeSubDomains`)。
README 原文
- `includeSubDomains` を有効にする前に、全サブドメインが HTTPS で運用されていることを確認してください。
README 原文
- **Contact フォーム送信が保存されない**: 現在は UI モック実装です。送信先API(Route Handler / 外部フォームサービス)を別途接続してください。
README 原文
https://github.com/rymetry/nextjs-portfolio-blog-template/blob/main/LICENSEhttps://github.com/rymetry/nextjs-portfolio-blog-template/blob/main/README.md- microCMS Webhook 連携による即時無効化(`revalidateTag` など)は必要に応じて追加実装してください。
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-14。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 85 / 100
- 技术栈
- Next.js · React
- 网站类型
- 作品集 · 博客
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-03-14
- 截图检查日期
- 2026-10-14
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15
查看当时使用的来源资料
SHA-256: fd37d16cc1bded0f067e652390899be32abd05fc926e19bb487b1474655671e2
2026-10-14T12:02:27.171Z
来源文件 / 仓库Portfolio & Blog Template (Next.js + microCMS)
=================================================
Next.js 16 / React 19.2 / Tailwind CSS v4 で構築した、**Portfolio & Blog** 向けテンプレートです。microCMS をヘッドレス CMS として採用し、記事一覧・検索・タグ絞り込み・関連記事・前後記事ナビゲーションなどのブログ機能に加え、Projects / About / Contact を含むポートフォリオ導線を備えています。App Router ベースで SEO とパフォーマンス最適化(ISR、メタデータ、構造化データ、RSS など)を実装済みです。
主な機能
--------
- microCMS 連携
- 記事 / タグの取得を `src/lib/api.ts` に集約
- アダプターで API スキーマをアプリ内型へマッピング
- ポートフォリオ UI
- Home のヒーロー、フォーカス領域、CTA
- Projects 一覧(カード表示)
- About / Contact ページ
- `src/lib/portfolio-config.ts` / `src/lib/projects.ts` によるプロフィール・実績の差し替え
- ブログ UI
- 最新記事カード(トップページ)
- 記事一覧(検索、タグフィルタ、ページネーション)
- 記事詳細(著者 / 公開・更新日 / タグ / 目次 / 関連記事 / 前後記事ナビ)
- 記事本文の HTML サニタイズ、コードハイライト、行番号表示
- SEO と配信
- `generateMetadata` / `Metadata` API を活用した title / description / canonical / OGP / Twitter カード
- JSON-LD(Article / Breadcrumb / Blog)を自動出力
- `truncateForSEO` でメタディスクリプション長を制御
- `app/sitemap.ts` と `app/robots.ts` によるサイトマップ / robots.txt
- `app/feed.xml/route.ts` で RSS 2.0 フィードを配信
- `next/image` による OGP・本文画像の最適化
- Draft Mode プレビュー
- microCMS プレビュー API と連携する `api/draft/enable|disable`
- Draft Mode 有効時のバナー表示と `draftKey`/`contentId` 対応
- パフォーマンス
- `'use cache'` + `cacheLife` / `cacheTag` によるデータキャッシュ(再検証間隔 300 秒)
- Draft Mode(`draftKey`/`contentId`)経路は `no-store` で常に最新を取得
- フォールバック時の例外処理と `notFound` ハンドリング
- UI / スタイル
- Tailwind CSS v4(Typography プラグイン)
- shadcn/ui コンポーネント
- `next-themes` によるダークモード
- 日本語最適化フォント
- **Noto Sans JP**(CSSフォントスタック): サイト全体(本文・見出し・UI)
- **PlemolJP HS版**(`next/font/local`): 記事詳細ページのコード表示向け
- clamp() による流動的なフォントサイズでレスポンシブ対応
- 日本語イタリック問題への対策済み
- アクセシビリティ対応(Skip Link、ARIA 属性など)
技術スタック
------------
- Next.js 16 (App Router)
- React 19.2
- Node.js >= 20.9.0
- Tailwind CSS v4 / `@tailwindcss/typography`
- microcms-js-sdk
- rss (RSS 2.0 フィード生成)
- shadcn/ui
- next-themes
- Bun / Node.js (任意のパッケージマネージャに対応)
ディレクトリ概要
----------------
- `src/app`
- `page.tsx` トップページ
- `projects` ポートフォリオ一覧
- `articles/` 一覧・記事詳細ルート
- `about` / `contact` / `not-found`
- `layout.tsx` 共通レイアウト(メタデータ、テーマ、ヘッダー/フッター、GA、RSSリンク)
- `api/draft/*` Draft Mode エンドポイント
- `sitemap.ts` / `robots.ts` / `feed.xml/route.ts`
- `src/components` UI コンポーネント、ページ専用コンポーネント
- `src/lib`
- `portfolio-config.ts` プロフィール表示設定
- `projects.ts` プロジェクトデータ
- `microcms.ts` microCMS クライアント
- `api.ts` データ取得ラッパー
- `metadata.ts` サイト定数と URL ユーティリティ
- `metadata-helpers.ts` ページ/記事用メタデータ生成ヘルパー
- `structured-data.ts` JSON-LD ユーティリティ
- `toc.ts` 記事本文の TOC / コードブロック処理
- `utils.ts` 共通ヘルパー(`cn`, `formatDate`, `truncateForSEO`, `stripHtml` など)
- `src/types` ドメイン型定義
- `public` 静的アセット(プレースホルダー画像など)
セットアップ
------------
ルートに `.env.local` を作成し、最低限以下を設定します。
```env
MICROCMS_API_KEY=your-api-key
MICROCMS_ARTICLES=https://your-service.microcms.io/api/v1/articles
MICROCMS_TAGS=https://your-service.microcms.io/api/v1/tags
# サイトURL契約(推奨)
NEXT_PUBLIC_SITE_URL=https://example.com
# Optional: Vercel が production build/deploy 時に自動付与
# VERCEL_URL=your-project.vercel.app
MICROCMS_PREVIEW_SECRET=your-preview-secret
NEXT_PUBLIC_GA_MEASUREMENT_ID=G-XXXXXXXXXX # GA4 を利用する場合のみ
# ローカル検証専用(CI / Vercel では禁止)
# ALLOW_LOCALHOST_SITE_URL_FOR_BUILD=1
```
- `MICROCMS_*` エンドポイント URL は API リスト画面からコピーしてください。
- プレビュー機能を使う場合は microCMS 側で Web プレビューに上記 `MICROCMS_PREVIEW_SECRET` と Draft Mode エンドポイントを設定します。
- `NEXT_PUBLIC_SITE_URL` を指定すると canonical / OGP / RSS URL が正しく生成されます。production で未設定の場合は `VERCEL_URL` を自動利用し、それも無い場合は fail-fast でビルドエラーになります。
- `SITE_URL` は非サポートです。設定しても利用されず、起動時にエラーになります。
- `ALLOW_LOCALHOST_SITE_URL_FOR_BUILD=1` はローカル検証専用です。`VERCEL=1` または truthy `CI`(`true|1|yes`)と併用すると fail-fast します。
初期カスタマイズ:
- `src/lib/portfolio-config.ts`: 名前、肩書き、自己紹介、SNSリンク、注力領域を更新
- `src/lib/projects.ts`: プロジェクトカード内容(概要、役割、成果、リンク)を更新
- `public/placeholder*.{svg,png,jpg}`: プロフィール・OGP・ロゴのプレースホルダーを差し替え
任意のパッケージマネージャを利用できます。例として Bun:
```sh
bun install
```
その他:
```sh
npm install
# または
pnpm install
yarn install
```
開発サーバーを起動:
```sh
bun run dev
# もしくは
npm run dev
```
ブラウザで <http://localhost:3000> を開きます。
スクリプト
----------
- `bun run dev` / `npm run dev` 開発サーバー (Turbopack)
- `bun run lint` / `npm run lint` ESLint
- `bun run build` / `npm run build` 本番ビルド
- `bun test` / `npm test` テスト実行
- `bun run test:e2e` Playwright E2E テスト(CSP ポリシー検証 + 違反ゼロ確認)
- `bun run start` / `npm run start` 本番サーバー
- `bun run format` Prettier による整形(`.prettierrc` を参照)
- `bun run perf:urls` 対象URLリストを `.perf/urls-all.txt` に生成
- `bun run perf:lh:mobile` Lighthouse(mobile)を実行し `.perf/lh-mobile/` に保存
- `bun run perf:lh:desktop` Lighthouse(desktop)を実行し `.perf/lh-desktop/` に保存
- `bun run perf:assert` Lighthouse サマリに対してスコア閾値を検証
補足:
- `test` スクリプトは `bun test` を実行するため、`npm test` を使う場合も Bun が必要です。
コンテンツモデリング / microCMS API スキーマ
--------------------------------------------
以下は microCMS のスキーマ定義JSON(`2026-02-20` 取得)に基づく構成です。
Articles API(`MICROCMS_ARTICLES`)
| fieldId | kind | required | 備考 |
| --- | --- | --- | --- |
| `title` | `text` | yes | 記事タイトル |
| `slug` | `text` | yes | 一意。バリデーション: `^[a-z0-9]+(?:-[a-z0-9]+)*$` |
| `ogpImage` | `media` | yes | OGP / カバー画像 |
| `authors` | `relation` | yes | Authors API への単一リレーション |
| `tags` | `relationList` | yes | Tags API への複数リレーション |
| `content` | `custom` | yes | カスタムフィールド(`articleBody`) |
| `excerpt` | `text` | yes | 概要文 |
Articles API `content`(custom: `articleBody`)
| fieldId | kind | required | 備考 |
| --- | --- | --- | --- |
| `showToc` | `boolean` | no | 目次表示フラグ |
| `body` | `richEditorV2` | yes | 本文(カスタムクラス対応) |
| `relatedArticles` | `relationList` | no | Articles API への関連記事リレーション |
Authors API(記事の `authors` リレーション先)
| fieldId | kind | required | 備考 |
| --- | --- | --- | --- |
| `name` | `text` | yes | 著者名 |
| `profileImage` | `media` | yes | プロフィール画像 |
Tags API(`MICROCMS_TAGS`)
| fieldId | kind | required | 備考 |
| --- | --- | --- | --- |
| `name` | `text` | yes | タグ名 |
| `slug` | `text` | yes | 検索・URL用スラッグ |
実装側の互換フォールバック(旧スキーマ対応):
- 本文: `custom_body.article_body` / `custom_body.body` / `content.body`
- 目次: `custom_body.toc_visible` / `content.showToc`
- 関連記事: `custom_body.related_articles` / `content.relatedArticles`
- OGP画像: `ogp_image` / `ogpImage`
SEO / 配信設定
--------------
- `createPageMetadata` / `createArticleMetadata` でページ種別に応じたメタデータと OGP/Twitter カードを一元生成します。description は自動で 160 文字にトリミングされます。
- JSON-LD は `JsonLd` コンポーネント経由で出力。記事には `Article`、一覧には `BreadcrumbList` / `Blog` を付与。
- RSS フィード: `/feed.xml`(`layout.tsx` で `<link rel="alternate">` も登録済み)
- サイトマップ: `/sitemap.xml` は静的ページと記事を包含
- robots: `/robots.txt`
- 通常ページは `'use cache'` により 5 分間隔で再検証されます。
- Draft Mode プレビュー時は `no-store` で取得し、下書き内容を即時反映します。
- 本番環境では microCMS 取得失敗時に fail-fast で検知し、空データを静かに配信しない方針です。
- `next.config.ts` では `NEXT_PUBLIC_SITE_URL` の `env` 注入を行いません。環境変数はデプロイ先の設定値を直接参照します。
セキュリティヘッダー / CSP 運用
-------------------------------
- CSP は proxy(`src/proxy.ts`)で HTML ナビゲーションにのみ適用します。`unsafe-inline` ベースのポリシーを採用し、nonce は使用しません。`script-src-attr 'none'` により inline event handler はブロックされます。
- `CSP_MODE` でモードを切り替えます。
- `report-only`(デフォルト): ブロックせず違反を収集
- `enforce`: 違反を実際にブロック
- 不正値は `report-only` にフォールバックし、warn を 1 回だけ出力します。
- 段階移行の推奨手順:
1. `CSP_MODE=report-only` で違反レポートを収集
2. 外部スクリプト・インラインスクリプトを整理
3. `CSP_MODE=enforce` に切り替え
- レポート送信ヘッダー:
- `report-uri` と `report-to` を併用
- `Report-To` の `max_age` は `86400`(1日)
- `Strict-Transport-Security` は production のみ有効です(`max-age=15552000; includeSubDomains`)。
- `includeSubDomains` を有効にする前に、全サブドメインが HTTPS で運用されていることを確認してください。
- production 向けビルド成果物を別環境へ再利用する場合、HSTS 適用差異で動作が変わる点に注意してください。
- `Permissions-Policy` で不要なブラウザ機能(camera / microphone / geolocation など)を無効化しています。
Draft Mode プレビュー
----------------------
microCMS でプレビュー用 URL に以下を設定:
```text
https://your-domain/api/draft/enable?secret=MICROCMS_PREVIEW_SECRET&contentId=...&draftKey=...&path=/articles/slug
```
上記リンクからアクセスすると Draft Mode が有効になり、最新の下書きデータでページが表示されます。画面右下のバナー(`DraftModeIndicator`)から `/api/draft/disable` を呼び出して終了できます。
品質管理
--------
- ESLint (flat config) + TypeScript による静的解析を `bun run lint` で実行
- 本番ビルド確認: `bun run build`
- RSS やサイトマップはビルド時に生成されるため、デプロイ前に実ファイルをブラウザ / バリデータで確認すると安心です。
トラブルシューティング
----------------------
- **microCMS のデータが取得できない**: 環境変数のエンドポイント URL や API Key が正しいか確認してください。
- **Prettier で `prettier-plugin-organize-imports` が見つからない**: `bun add -d prettier-plugin-organize-imports` で追加するか `.prettierrc` から plugins を削除してください。
- **Draft Mode が有効にならない**: `MICROCMS_PREVIEW_SECRET` と microCMS 側のプレビュー設定を再確認してください。
- **Contact フォーム送信が保存されない**: 現在は UI モック実装です。送信先API(Route Handler / 外部フォームサービス)を別途接続してください。
デプロイ
--------
- Vercel など標準的な Next.js デプロイフローに対応しています。
- 本番環境にも `.env.local` と同じ環境変数を設定してください。
- microCMS Webhook 連携による即時無効化(`revalidateTag` など)は必要に応じて追加実装してください。
ライセンス
----------
このテンプレートの利用条件はリポジトリのポリシーに従います。
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

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

react-resume-template
A personal resume website template built with React.js, Typescript, Next.js, and styled with Tailwind css
Next.js · 作品集

Nextjs-tailwindcss-blog-template
使用 Tailwind CSS 的 Next.js 博客。当前分支通过 Velite 处理 Markdown,早期 Contentlayer 实现保留在单独的历史分支中。
Next.js · 博客

Next-js-Blog-Boilerplate
Next-js-Blog-Boilerplate 是一套面向个人与技术博客的启动代码,基于 Next.js 12 与 Tailwind CSS 3 构建,同时集成了 TypeScript、ESLint、Prettier …
Next.js · 博客

nextjs-blog-theme
nextjs-blog-theme 是 Netlify 团队维护的一个博客启动模板,基于 Next.js 15(Pages Router)和 Tailwind CSS 4.x 构建,设计由 Bejamas 机构完成。
Next.js · 博客

blog
🚀 My personal blog made with Tailwind CSS and NextJS. Template from Timlrx. Feel free to fork, follow and use…
Next.js · 博客
