HomeArchiveFeedShelf

Blog Enhanced

The arrival of the AI era has indeed enhanced productivity in the software industry, with significant evidence being the surge in traffic on GitHub, which has even led to decreased usability. This blog program has also undergone iterations with the help of AI.

Below, I will clone the blog program, with developers who deploy it referred to as "users," and readers of the deployed blog posts referred to as "visitors."

CMS

Previously, the code and article content were mixed in the same repo, and the blog users (currently just me) had to maintain a local deploy branch that contained markdown, images, videos, and some configurations for the site. Maintaining both code and articles in a single codebase was cumbersome and prone to errors, making writing articles feel like a website release, which diminished the motivation to write. The content of the blog must be decoupled from the blog code.

I compared the following solutions:

Blog Content on Cloud Storage

This is consistent with the previous farbox solution, but many cloud storage providers in China have malicious practices, and I do not want my private articles and images to be scrutinized by them. Non-malicious cloud storage providers: 1. Most are blocked, which increases deployment costs for Chinese users; 2. Those that are not blocked and are non-malicious are often small companies, and their lack of being blocked is simply because they haven't attracted attention yet. These small providers often lack APIs and could go out of business at any time. The existence of my blog content needs to be more durable than they are.

Adding a Database

If articles are stored in a database, it would also increase deployment costs for users, as they would need to find a DB provider like Neon Supabase. Moreover, storing articles in a database makes browsing the source files less intuitive. Although with coding agents, creating another CMS system isn't difficult, the principle of not reinventing the wheel still applies even in the AI era. After all, development and maintenance costs are not zero, and if someone else has done similar work, isn't it better to reuse it directly?

Git Backed CMS

This blog ultimately integrated Decap CMS, which commits articles directly to a specified git repo that contains only articles and nothing else. When the repo is updated, GitHub triggers a refresh of the blog via webhook. Nuxt Content automatically renders the content of this git repo. 1. GitHub is likely to exist for the foreseeable future, potentially as long-lived as human civilization; 2. GitHub is completely free for ordinary users; 3. The git repo can be easily set to private; 4. It even automatically gains versioning capabilities.

Additionally, for binary content such as images and videos, this blog also provides the option to configure S3.

In terms of security, access passwords can be configured for Decap pages, and I have also set up Cloudflare Zero Trust Access for additional security.

Project address: https://github.com/portwatcher/blog

Todo

  • AI translation feature
  • Enable Login With GitHub button instead of configuring editor access passwords
@2026-05-24 00:23