Skip to content

How do I build my Blog

Published at  at 09:37 PM

Why not use existing mature solutions?

Where to store the article contents?



Notion / Feishu Docs / Yuque

If I were not a programmer, I might choose these, but I am, and also a front-end one.

The Result

Put it in the Git repository first, and consider a hybrid mode later.

Image hosting service

I’d like to use GitHub/Imgur, but Chinese access is restricted. The Aliyun OSS risks malicious traffic, so I’ll put it in the git repository for now.


In order to reach a global audience, I need to support both Chinese and English languages. The most desired interaction is side-by-side display, but it feels like the development workload might be quite large. Just use astro-i18next for now.



It is a plain text content (xml/json/atom), built into Astro


A little bit of trouble, will not be realized for the time being

Account system?

Two demands:


My final choice was Giscus.

That must have my own account system. And also consider making a separate website. So I won’t realize it for now.

Website Traffic Analytics

Finally I chose umami’s free plan.

Synchronize across all platforms?

Modify content synchronously

A bit unrealistic, not all platforms provide API

Display all the comments and the total number of likes across all platforms

It’s not necessary for now.

Access statistics for all platforms

It’s not necessary for now.

Projects that can be learned from

The UI design is very good:

Some tools:

Starting boilerplate?

Not many pages, not complicated, daisyui / shadcn can make one from scratch, I can also find a boilerplate with i18n (shadcn is powered by, others can use instead)

I ended up going with astro-paper + changing the features and styles myself.

Start working

I18n, A Big Trap

I chose to start development based on Astro paper, and then chose astro-i18next for internationalization. I ran into a big problem, which was my own fault for not realizing that it was still in the Beta stage.

Other traps

Furthermore, I still need to change the style. I’ve almost finished reading through the entire code of this repository. If I had known earlier, I would have written it from scratch myself, that didn’t save much time.


SSG (Static Page Generation):

SSR (Server Side Render):

To be confirmed:

Share on: