Article node / reading chamber
Hypervoid · README
GitHub 仓库的 README——这套博客的功能总览、技术栈、本地起步、路线图。基本同步代码库。
Article node / reading chamber
GitHub 仓库的 README——这套博客的功能总览、技术栈、本地起步、路线图。基本同步代码库。
这是 GitHub 仓库 README 的镜像,保留以便不进仓库的访客也能看到这个站的完整功能清单与技术选型。 想看更动手的部署指南,看 Hypervoid 完全指南。
Hypervoid is the source of my personal blog & digital garden — built from an empty directory, no template, every line designed to grow with me.
Articles live in Postgres, images in Vercel Blob, comments in GitHub Discussions, and the whole site auto-deploys on every push to main. The admin panel writes directly to the database; no rebuilds needed per post. AI summary and Q&A run on Claude Haiku 4.5.
> [!NOTE] etc.) + KaTeX math + reading time (CJK-aware)/bookmarks page (localStorage)/posts, /tags/[tag], /archivesitemap.xml + PWA manifest + apple-touch iconmapping="pathname")/games, recent-2-weeks + total playtime + search + sort/projects · /skills · /timeline · /albums · /diary · /friends · /guestbook · /archive · /series/admin — stats (posts/views/likes/subscribers) · recent published · pending counters (drafts / scheduled / private / missing-summary)ADMIN_GITHUB_LOGIN may enternext/server's after() (no editor wait) injected at cursorCtrl/⌘+P strips chrome, keeps article body/ 首页 (latest posts + sidebar widgets)
/posts 所有文章
/posts/[slug] 文章详情 (TOC · views · likes · AI Q&A · comments · prev/next · share)
/tags 所有标签 (with counts)
/tags/[tag] 标签筛选
/archive 归档 (按年月)
/anime 番剧
/movies 影视 (Bangumi subject_type=6)
/books 书籍 (Bangumi subject_type=1)
/games Steam 游戏库
/projects 项目
/skills 技能
/timeline 时间线
/albums 相册首页
/albums/[slug] 相册详情
/diary 日记
/friends 友链
/guestbook 留言板
/about 关于
/search 全文搜索 (?q + ?tag + ?year)
/series 文章系列索引
/series/[name] 单个系列详情
/bookmarks 本地收藏夹 (localStorage)
/donate 赞赏页 (默认隐藏,受 siteConfig.donate.enabled 控制)
/admin 后台 dashboard (GitHub OAuth)
| Layer | Choice |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack) |
| UI | React 19 + Tailwind CSS v4 + @tailwindcss/typography |
| Content | next-mdx-remote + remark-gfm + remark-math + remark-github-blockquote-alert + rehype-katex + rehype-slug + rehype-autolink-headings |
| Syntax | Shiki via @shikijs/rehype (custom transformer for filename/lang meta) |
| Data | Postgres on Neon + Drizzle ORM |
| Search | Postgres pg_trgm extension + GIN index |
| Auth | Auth.js v5 + GitHub provider |
| Images | Vercel Blob |
| Comments | Giscus |
| Resend | |
| Analytics | Umami Cloud |
| AI | Anthropic SDK (Claude Haiku 4.5, streamed) |
| Hosting | Vercel (Hobby tier + daily cron) |
git clone https://github.com/HyperCharon/hypervoid.git
cd hypervoid
pnpm install
# 1. Copy env template and fill in your own credentials
cp .env.example .env.local
# - DATABASE_URL (Neon project)
# - AUTH_SECRET (openssl rand -base64 32)
# - AUTH_GITHUB_ID/SECRET (https://github.com/settings/developers)
# - ADMIN_GITHUB_LOGIN (your GitHub username)
# - NEXT_PUBLIC_GISCUS_* (https://giscus.app)
# - BLOB_READ_WRITE_TOKEN (Vercel Blob)
# - RESEND_API_KEY (optional, for newsletter)
# - ANTHROPIC_API_KEY (optional, for AI summary/Q&A)
# - NEXT_PUBLIC_UMAMI_WEBSITE_ID (optional)
# 2. Push schema, then rebuild full-text search indexes (db:push drops them)
pnpm db:push
pnpm exec tsx scripts/setup-search.ts
# 3. Run
pnpm build
⚠ If
pnpm devcrashes the browser / IDE, switch topnpm build && pnpm start. Shiki + Turbopack on Next 16 can eat RAM aggressively.
For day-to-day operation — how to write a post, customize the theme, manage DNS, debug deployment, back up data — see the comprehensive Handbook.
Code: MIT. Articles, images and original content: CC BY-NC-SA 4.0.
Built by Charon — @HyperCharon on GitHub, @Charon0415 on Bilibili.
One & Only