惊蛰 (Jingzhe) is an open-source Hugo-based personal blog system that combines long-form essays, microblog-style updates, life logging, movie tracking, and AI-assisted exercise reviews into a single self-hosted static site.
What is Jingzhe?
Jingzhe is built on Hugo Extended, GitHub Actions, and optional Serverless Workers. It takes Markdown and JSON content stored in your own Git repository and renders a static site with full-text RSS, JSON, Sitemap, and Web App Manifest. The repository at github.com/koobai/blog is the real production site of Koobai (koobai.com), serving as both a complete demo and the reusable open-source implementation. A Core init tool (python3 tools/jingzhe.py init) generates a minimal site that does not include Koobai's real content, while the Publisher, Social, Life Data, and AI Coach modules can be enabled on demand.
Key Features
- Life timeline — Unifies long-form posts, short updates, and tinkering notes, organized by tags and categories.
- Self-built Hugo theme — The themes/jingzhe_v3 theme offers a responsive layout with light, dark, and system color modes plus an image lightbox.
- Browser publishing backend — A Publisher Worker lets you write essays or microblog posts, preview Markdown, upload images, and commit changes to GitHub without leaving the browser.
- Comments and interactions — A Comments/Likes Worker with Cloudflare D1 supports nested replies, likes, emoji, moderation, and Cloudflare Turnstile anti-abuse.
- Douban movie sync — Incrementally syncs your Douban ratings and short reviews, then displays them as movie tickets with scores and watch dates.
- Exercise tracking with privacy — Activity data from Keep or Health Connect is converted via the exercise-sync-v1 protocol; stats, heart rate, Mapbox trails, achievements, and a public landmark route library protect exact locations.
- AI monthly reviews — The AI Coach generates mid-month and month-end summaries, sending only filtered aggregate data to the model API.
- Modular architecture — Core runs as a plain static blog with no Workers; Publisher, Social, Life Data, and AI Coach are optional and can be enabled independently.
Who is it for?
- Developers who keep a digital garden — Use the Git-backed content flow and browser publishing to post essays and short updates without a CMS.
- Movie and drama fans — Sync Douban watch history and share ratings and reviews automatically on a personal site.
- Privacy-conscious fitness trackers — Import workout data and see statistics, achievements, and AI summaries while replacing exact GPS trails with public landmark routes.
- AI-automation enthusiasts — Hand the repository and the deployment instructions from docs/quick-start.md to an AI assistant to initialize, configure, and deploy a minimal site.
What can you do with Jingzhe?
- Start minimal and expand — Run python3 tools/jingzhe.py init to generate a Core-only site, then enable workers for publishing, social features, life data, or AI coaching when needed.
- Publish from anywhere — Use the web writing interface to post a quick update or an essay with Markdown preview, drafts, and image upload, committing straight to your GitHub repo.
- Track your exercise journey — Sync Keep/Health Connect data through the Activity Sync Worker, view monthly calendars, heart rate, and achievements, and get AI-written mid-month and month-end reviews.
- Maintain a movie log — Sync Douban data incrementally and present your watched films as an archive of ticket-style cards with ratings and short comments.
How does Jingzhe work?
The system stores all content as Markdown and JSON in a Git repository. Hugo builds the site from that content and deploys the output to Cloudflare Pages. Optional Workers handle browser publishing, comments/likes, and activity-data sync, while a Python pipeline processes exercise data and generates AI month reports. Unconfigured optional modules do not block the core blog from running.
FAQ
Does Jingzhe work without any serverless Workers?
Yes. The Core profile runs with just Hugo Extended and a Git repository. Use python3 tools/jingzhe.py init to generate a minimal site that contains no Koobai content and depends on no Workers.
What are the system requirements?
Local preview needs Git and Hugo Extended 0.158.0 or newer. Python 3.9 or higher is needed for exercise processing and related tests. Worker behavior tests use Node.js.
Is Jingzhe free to use?
The program code, theme, tools, Workers, and technical documentation are released under the MIT License. Koobai's actual articles, personal data, images, name, avatar, and logo are not covered by that license.
Can I deploy Jingzhe with AI?
Yes. The repository includes docs/quick-start.md with deployment instructions that can be copied directly to an AI assistant. The AGENTS.md file defines rules for AI assistants, including source/generated file boundaries, production compatibility contracts, and required checks.
What data can Jingzhe sync?
It can sync Douban movie data, and exercise data from Keep or Health Connect via the Activity Sync Worker using the exercise-sync-v1 protocol. All public life data is stored as JSON in your own repository, and only filtered aggregate data is sent to the AI model.








