A while after I published the previous note in this series, quite a few people reached out to discuss it with me. So I want to continue that thread and talk about what I personally consider a real blog.
Everyone has their own idea of what a blog should be. This is very much a subjective topic, but that is exactly why it is worth discussing—especially if we want to rethink how blogs are built today.
What a blog actually is
If you ask a large language model what a blog is, the answer is usually something like this: a platform where an individual or a team publishes content, often in chronological form, covering everything from personal life and hobbies to professional knowledge and commentary on current events.
That definition is broad, and it should be. It is easy to talk only about technical blogs, but blogs have never been limited to one genre. There are technical blogs, personal journals, commentary sites, niche hobby spaces, and combinations of all of them. If I am building software around blogging, I do not want to assume only one kind of writer exists.
Why build a personal blog at all?
This is really the center of the whole discussion.
Why did you decide to build a personal blog in the first place?
There are already so many platforms that let people publish without running their own site: CSDN, CNBlogs, Juejin, Zhihu, column systems on video platforms, and plenty more. If those options exist, why go through the trouble of self-hosting?
My own answer is simple. When I first started building a blog, I barely even knew some of those platforms existed. I had registered accounts years ago, but mostly used them later only when I needed to look something up. Back then, like many others, I was trying to set up bulletin boards and small websites. Most of those experiments are gone now, and the blog is the one thing that survived.
At the time, building your own site felt cool. You made something yourself, you put it online, and it was yours. That habit stayed with me.
So why not just shut it down now?
Running a personal site is not cheap anymore. Even if people talk about discounted student servers, that still costs money. A few hundred yuan is still money, and those student deals expire. On top of that, operating a personal site domestically comes with all kinds of practical and regulatory trouble. I have mentioned before why I do not enable comments. In practice, if you are running a personal blog in China, even the word “blog” itself can become awkward. A lot of people end up calling what they do “notes” or “logs” instead.
And honestly, for technical blogs, even when comments are enabled, very few people actually use them. If someone wants to ask something, they often just message directly on WeChat or QQ, send screenshots, and continue the discussion there. That is often more efficient than a traditional comment thread.
Of course, not every blog is technical. Some people use a personal site as a private corner of the internet where they can write freely about their life. In those cases, comments make more sense. If you browse long-running blog aggregators, personal writing is often the first-hand material people are genuinely curious about. That kind of writing still has value.
But once you deploy domestically, things become troublesome very quickly. Since it is already troublesome, I have no interest in making native comments a core feature. Static-blog users have long been accustomed to adding third-party comment systems only if they want them anyway. Under the current environment, if something unnecessary can be avoided, I would rather avoid it.
With all these obstacles, why keep going?
Because once you look at the state of existing publishing platforms, it becomes obvious why some people would still rather pay out of pocket and keep their own site alive.
A few representative examples are enough:
<table> <thead> <tr> <th>Site</th> <th>Strengths</th> <th>Weaknesses</th> </tr> </thead> <tbody> <tr> <td>CSDN</td> <td>Useful if what you want is follower count; its scale, recommendation machinery, and engagement culture can help people accumulate numbers quickly</td> <td>Copy, Steal, pay-Download and Not work / many high-follower posts are terrible</td> </tr> <tr> <td>Juejin</td> <td>Less of the CSDN atmosphere</td> <td>Overloaded with front-end content, and lately also full of watered-down posts; there are still good articles, but the average quality is rough, especially after training-camp style incentives and the arrival of many repost-heavy creators</td> </tr> <tr> <td>Medium</td> <td>A lot of articles are genuinely high quality</td> <td>Many of the best pieces sit behind paywalls, and for non-native users access is not always convenient</td> </tr> </tbody> </table>Broadly speaking, free blogging platforms in China have inherited the same set of problems: copied content, stolen content, paywalled downloads, and low-value posts. Most of them are also heavily centered on technical content. But people who run independent blogs are not all writing about code. Many write about daily life. And in reality, a lot of the best technical writing is also scattered across independent personal sites rather than concentrated on major platforms.
Look at what dominates many domestic blogging platforms:
- shameless promotional posts written only to make money
- notes, and often notes copied from somewhere else
Independent bloggers usually do not have the money or reach to compete in SEO, so search visibility gets swallowed by the big platforms. That is part of why so many people have such a poor opinion of domestic search results. Those platforms are acting in their own commercial interest, and there is no point pretending otherwise. We may not be able to stop them, but we can leave.
As for overseas blogging ecosystems, saying they are better in some respects is not blind foreign worship—it is just an observation. There is a reason advanced technical discussion often appears there first, why many strong teaching materials come from there, and why so much useful terminology and explanation develops there. People share what they build. They document what they experiment with. Even people in management roles still spend time explaining new ideas in public.
A lot of what they publish looks like this:
- deeply technical articles built from real effort by individuals or teams
- writing substantial enough that, with some editing, it could nearly pass for formal publication
- tutorials that are logical, readable, and easy to follow
- and yes, personal reflections and everyday complaints too
The gap is hard to ignore.
That said, plenty of people at home have already realized this and chosen to build their own platforms and publish under their own control. Many excellent tutorials live on those independent sites. I also like aggregator communities that gather these blogs together. They make it easier for people to find one another, support one another, and keep going.
What most blog software looks like now
The problem is that once you look at today’s self-hosted blog systems, most of them end up feeling interchangeable.
There are static blogs and dynamic blogs. Dynamic systems add a database and store content differently, but aside from comments, the visible feature set is often almost identical.
Usually every system includes the same things:
- a homepage showing the latest posts
- support for custom pages
- archives
- search
- categories and tags
- and so on
In my view, a lot of this is unnecessary.
Take archives. Unless a theme gives archives some genuinely useful role—like surfacing interesting site-wide statistics—I do not think archives add much. Once there are many posts, they become slow and clumsy anyway. Very few people browse them for fun.
I have also always felt that categories and tags overlap. Some people disagree, and that is fine, but once categories multiply they become a hassle to manage. Tags are often enough to show the key themes in a post; they can act almost like a compact summary. And if needed, tags can effectively do the job categories were supposed to do. Looking through someone’s tags also tells you what kind of writer they are and what field they focus on.
The direction I want to take
So the software I am building is based on a simple idea: cut away the clutter and keep the parts that matter.
I kept the features I consider essential and removed a lot of what I do not think is worth forcing into the core product. If a feature becomes necessary later, I can always add it. The program is my own, after all.
Here is the basic direction:
- The homepage is a personal landing page. That way people do not need to build a separate portal page just to introduce themselves. It can also replace the standard “About” page most blogs end up making.
- Publishing articles should be straightforward. I mentioned before that I do not like the workflow of writing locally and then manually re-uploading content piece by piece. My approach is to upload a local folder directly. Why a folder? Because that folder can include all the related assets.
- It is neither purely static nor purely dynamic. People might assume that anything using Markdown uploads must be a static blog, but that is not necessarily true. My system is a hybrid of static and dynamic approaches. I will talk more later about how that works.
- No native comment system. There are already plenty of third-party comment solutions for anyone who wants them.
- A separate feature for “knowledge base” content. Earlier I mentioned one common article type: notes. Personally, I prefer blog writing that analyzes real hands-on experience, while notes fit better under a different label—something more like a knowledge base. So I built an extra feature specifically for that kind of material. It works a bit like a booklet system, with a reading mode closer to reading a novel than browsing scattered posts.
- Friend links with subscriptions built in. Traditional blogroll pages are often lifeless. Two sites exchange links, but rarely visit each other much afterward. And when readers encounter an unfamiliar blog, only the most curious people will click through one by one. This is where RSS should actually be used properly. My friend-link feature includes RSS subscription support directly, turning it into something closer to a real social circle instead of a static list. There is no need to deploy a separate system just to subscribe.
That is where my ideas stand for now.
I am not worried about sharing them publicly. If someone copies the ideas, launches earlier, or invents a nicer explanation around them, that does not bother me much. The ideas still came from my own thinking. More importantly, if all we do is stay trapped inside inherited feature lists, then we are just rebuilding the same wheel over and over again. Changing the programming language does not make that any more interesting.
What matters more is breaking out of fixed assumptions about what blog software has to look like.