Migrating from NotionNext to Zola: Migration Notes
Documenting the complete process of migrating the personal site from NotionNext to Zola Reasons for Migration, Operation Scripts, Common Error Fixes… Recently, I migrated my personal website from NotionNext to Zola and would like to share some thoughts. Previously, I used NotionNext to host my personal blog. Notion is indeed an excellent text editing tool—writing articles is smooth, and having a cross-platform app for instant writing and syncing is very convenient. As long as you set an article to “published,” it appears on the frontend. As the number of articles grew, managing them with NotionNext became less efficient for me. The Notion database became large and difficult to maintain. Since I have frontend development experience, managing the frontend with CSS in static site generators like Zola is more intuitive and convenient than editing in Notion. For better article management, content customization, and multilingual support, I decided to migrate my blog to Zola. The official Zola documentation is clear and straightforward. Setting up a local Zola development environment usually takes just one command. Note: If you need support for Chinese/Japanese, you must build a custom binary index; otherwise, site search won’t work for those languages. For local installation and GitHub Actions compilation with Chinese support, see my article: Enable Chinese Indexing in Zola. My setup is local Windows development with deployment on GitHub Pages. The blog code is in repository A, deployed via GitHub Actions to public repository B, and then pushed to GitHub Pages. Normally, your blog can use the following structure: However, for multilingual support, you need to create corresponding language files. For example, if your site’s main language is English ( This way, Zola recognizes both English (default) and Chinese versions under Currently, I manually export articles from NotionNext as markdown and then edit them in Zola. In the future, I may consider automating the process from Notion editor to markdown.Migrating from NotionNext to Zola
Background
Experience with NotionNext
Reasons for Migration
Migration Process
Installing Zola
flowchart TD
%% ---- Nodes ----
subgraph Local["Local Development"]
W[Windows Local Development]
end
subgraph GitHub["GitHub"]
A[Repo A(Blog Source Code)]
GA[GitHub Actions(CI/CD)]
B[Repo B(Static Site Files)]
GP[GitHub Pages(Online Hosting)]
end
U[Visitor / Browser]
%% ---- Connections ----
W -->|git push| A
A -->|trigger workflow| GA
GA -->|build static files → push| B
B -->|gh-pages branch| GP
U -->|HTTPS request| GP
%% ---- Styles (optional) ----
classDef local fill:#e5e5e5,stroke:#888,stroke-width:1px,rx:6,ry:6;
classDef repo fill:#fef6e4,stroke:#a9a9a9,stroke-width:1px,rx:6,ry:6;
classDef action fill:#cbf3f0,stroke:#0096c7,stroke-width:1px,rx:6,ry:6;
classDef page fill:#ffd6a5,stroke:#ff8800,stroke-width:1px,rx:6,ry:6;
class W local;
class A,B repo;
class GA action;
class GP page;
linkStyle default stroke-width:2px;
Article Structure - Multilingual Support
content/
└── blog/
├── 2025-07-01-zola-migration.md
├── 2025-06-20-new-feature.md
└── 2025-05-10-performance-tips.md
en) and you want to support Chinese (zh), create an index.zh.md file for the Chinese version. My structure looks like this:content/
└── blog/
├── 2025-07-01-zola-migration/
│ ├── index.md
│ └── index.zh.md
├── 2025-06-20-new-feature/
│ ├── index.md
│ └── index.zh.md
└── 2025-05-10-performance-tips/
├── index.md
└── index.zh.md
2025-07-01-zola-migration. If a language version is missing, it won’t cause errors, but the article won’t appear in that language.Article Migration