Skip to content

Why You Need a Knowledge Repository

Since 2015, I've been attempting to create a personal website. Today, after various platform transitions, I have established a personal knowledge repository on Power's Wiki, where I record and share knowledge. In the following, I will elaborate in detail on the main topic of this article.

Why Do You Need a Knowledge Repository?

Knowledge Requires Archiving and Accumulation. The knowledge we accumulate in our daily lives can quickly be forgotten if not organized and summarized in a timely manner. Proper categorization and archiving not only facilitate future retrieval and reference but also help avoid stumbling over the same information repeatedly.

Use Output to Drive Input. The best way to quickly master a subject is to explain it in your own words to others. If you can articulate knowledge clearly, then you truly understand it. Through continuous output, when you find that you can't describe knowledge clearly, it prompts you to actively learn more. On the flip side, this encourages us to engage in continuous reading and learning.

Cyber Space as a Shangri-La. In this personal sanctuary, you can escape the chaos of the mainstream internet (specifically referring to some turbulent online discussions). I often view my personal knowledge repository as a place to cultivate and focus one's mind.

Why Make Your Knowledge Repository Public?

Enhanced Refinement and Organization. If you choose to keep your knowledge repository private, the requirements tend to be lower. The organization and refinement of knowledge may become more casual, with less emphasis on structure and readability. Over time, your knowledge repository may evolve into a collection of drafts, and you might even struggle to understand what you had written before.

Sharing Sparks Intellectual Exchange. Knowledge thrives when shared and can lead to new insights through interactions. When others encounter the same problems, they can easily refer to tutorials you've written, making it both convenient and valuable.

Building Personal Brand and Connecting with Like-Minded Individuals. By consistently maintaining a knowledge repository, you will attract like-minded readers and friends. Perhaps they share your interests in photography, programming, electronics, robotics, or reading, and may also be managing their own knowledge repositories or blogs. Additionally, showcasing your knowledge repository on various social platforms or your resume is an effective way to demonstrate your expertise.

Why Choose to Build Your Own Knowledge Repository?

The relative alternative to building your own knowledge repository is writing on third-party platforms. Third-party platforms refer to platforms like Notion, Zhihu, Jianshu, WeChat Official Accounts, CSDN, and similar platforms. On these platforms, you don't have to worry about the underlying structure, basic functionality, image storage, site deployment, SEO, and more. You just need to write your content, and the platform takes care of the rest. In other words, it's a user-friendly way to create content, with the added benefit of significant built-in traffic. Given these conveniences, why do we still advocate for building your own knowledge repository?

First and foremost is the issue of data security. The content you leave on third-party platforms may not always belong to you.

At this stage of the internet's development, most platforms are building walls around their data. They may allow data import, but when it comes to exporting data in bulk, they often create obstacles. Moreover, many platforms discourage external links, which is detrimental to knowledge sharing and exchange.

Notably, with WeChat Official Accounts, as of now, you can only make limited changes to articles, up to 20 characters. However, many types of knowledge are not static and require ongoing updates, making it challenging to maintain a knowledge repository effectively.

Entrusting your data entirely to a platform is a risky endeavor. If your article contains sensitive content or unfavorable remarks about the platform, their common response is to block or demand alterations. Furthermore, if the platform's servers are hacked or if the platform shuts down, they are not obligated to restore or return your data. In the end, relying on the platform means you do not have full control over your data.

Secondly, there is the matter of customizability. When you choose a platform, you must accept its style and user interface, and at times, tolerate various advertisements surrounding your articles. In contrast, with a self-built platform, you can fully customize the user interface. A clean and simple layout undoubtedly enhances the reading experience.

In essence, the relationship between third-party platforms and self-built platforms is akin to renting a house versus buying one. Choosing to rent a house may involve lower costs, convenient access, and some degree of freedom in decorating your rented space. However, what you possess is a right of use, not ownership. When you buy a house, you can freely alter the interior design, place whatever you want in the rooms, and truly own the property.

Why Opt for a Knowledge Repository Over a Stream of Articles?

A stream of articles refers to blogs, WeChat Official Accounts, and the majority of platforms that organize content chronologically. On the other hand, a knowledge repository (Wiki) organizes content categorically, much like flipping through an archive, making it more suitable for retrieval and categorized reading.

Why choose a knowledge base over a stream of articles? First, some trivial but essential knowledge may not be suitable for standalone, lengthy articles. If presented in the form of a continuous stream of articles, they would share equal weight with other content, diluting the overall purity of the site. However, systematic articles are often derived from these scattered pieces of knowledge. Relatively speaking, using a knowledge base format as a carrier, categorized for distinction, is more suitable.

On the other hand, I previously mentioned in the article on Card-Style Writing that each piece of fundamental knowledge is like a small card. These cards are abstracted layer by layer, and different top-level articles can reference the same foundational cards, increasing the reuse of knowledge and reducing unnecessary duplication of effort.

Choosing the Right Tool

When it comes to selecting a knowledge base, I place importance on the following aspects:

  • Basic Functionality: The sidebar should display article titles and their respective categories, while the main layout should support Markdown syntax and ensure that content and the framework are independent.
  • Search Functionality: Search functionality complements category archives. Sometimes, searching for a specific piece of knowledge within a broader category can be inconvenient, but a site-wide search allows for direct access.
  • Open Source: The platform for the knowledge base must be open source. Closed-source projects may cease updates or support due to the personal or team reasons of the maintainers, leading to delays in bug fixes (this specifically refers to GitBook and Bitcron).
  • Static Website: A static website can be hosted on platforms like GitHub Pages, eliminating the need for a separate server. This is both cost-effective and easy to maintain, and it is also search engine optimization (SEO) friendly.
  • Easy Setup and Updating: Setting up the knowledge base should not be overly time-consuming, and the content update process should not be overly complex.
  • Sleek and Aesthetic UI: For the sake of the reading experience, the UI layout should be clean and attractive, preferably with a night mode.

Limitations of Self-Built Knowledge Bases

When I see someone praising a platform without criticism, remaining silent about certain issues with that platform, displaying selective blindness, and excessively exaggerating its strengths with passionate praise, I become more vigilant. I force myself not to be emotionally swayed and to approach everything about that platform rationally.

I don't want everyone to only be aware of the advantages of self-built knowledge bases. It's important to note that self-built knowledge bases have certain limitations. Only by fully understanding their pros and cons can you make choices based on your goals.

Traffic Concerns: Relying on third-party platforms makes your content more likely to be read by a wider audience and displayed within the top ten results of search engines. In contrast, self-built platforms generally have limited traffic, meaning fewer readers. However, you can use a method known as "one article, multiple platforms" to address this issue. In essence, you can use tools like Artipub to synchronize your content to various third-party platforms and direct traffic to your personal knowledge base.

Technical Barrier: For readers who haven't been exposed to the Jamstack (JavaScript, API & Markup) concept and its related technical stack, there may be a learning curve. I will address this issue step by step in the article on Building a Personal Knowledge Base - Using Docusaurus as a Base.

Lack of Online Editor: In other words, if you choose a static website, the editor and the website itself are separate. You cannot directly edit and publish content on the website or app like on platforms such as Zhihu. You'll need a local editor, such as VS Code or Typora. However, there are solutions available, and you can refer to the article on How to Run VS Code on an iPad for more information.

Knowledge Points Can Belong to Multiple Categories. In general, a knowledge base typically categorizes articles into specific categories to avoid clutter. Each individual article is usually assigned to only one category. However, consider an example: the article "How to Design the Minimal System for a Microcontroller" belongs to both the Circuit Design and STM32 categories. How should it be categorized? My solution is to categorize it based on the category that is most relevant to the article's content. The reason for not using a tagging system is that tags can become overly abundant, and searching is less convenient than using categorized classification with a search function.

Which Platforms Have I Used?

  • WordPress: User-friendly but the underlying infrastructure is overly complex, requiring a database and not conducive to migration.
  • Hexo: Somewhat cumbersome, and lacks attractive Wiki themes.
  • GitBook: The CLI version has ceased to receive updates and the V2 version experiences slow access speeds in China.
  • Jekyll: Somewhat outdated in terms of technology and lacks ongoing support.
  • GitHub Issues/Gist/Wiki: Slow access speeds in China, and the user interface is not customizable.
  • Bitcron: Hosts dynamic websites, with limited customization and variable access speeds.
  • DokuWiki: Requires a self-hosted server and is somewhat outdated in itself.
  • Gridea: Simple deployment but limited customization, only usable with its dedicated editor.
  • wiki.js: Requires a self-hosted server and is generally suitable for team knowledge bases but has some minor issues.
  • 语雀 (Yuque): A relatively good third-party knowledge base platform, with the drawback of limited UI customization and inconvenient data export.
  • Hugo: Fast deployment but lacks appealing Wiki themes.
  • Gatsby: Similar to Hugo.
  • Ghost: A dynamic website with an aesthetically pleasing UI, but requires a self-hosted server (or purchasing a service) and has limited customization.
  • docsify: Relatively recommended. Easy deployment, attractive UI, but due to its rendering on the fly, it performs poorly on some devices.
  • Docute: Also recommended. Simple deployment, attractive UI, and similar to docsify but with fewer plugins.
  • VuePress: A recommended choice. It excels in various aspects, has a diverse collection of community plugins, but is hindered by somewhat disorganized official documentation and minor bugs.
  • Docusaurus: Another recommended choice. It performs well in various aspects but has the limitation of slower compilation and a somewhat hefty framework.
  • MkDocs (with the Material theme): Highly recommended. It performs well in various aspects, compiles relatively quickly, and is the solution currently in use on my website.

I have also written some articles in the past about self-hosted blogs and knowledge bases. If you're interested, you can refer to them for more information.

Sure, here is the translated text in an elegant and professional style while maintaining the original markdown format:

- [Building a Personal Wiki with Docsify](https://wiki-power.com/unlist/building-a-personal-wiki-with-docsify)
- [Returning to Blogging](https://wiki-power.com/unlist/returning-to-blogging)
- [Exploring the Bitcron Blogging Platform](https://wiki-power.com/unlist/exploring-the-bitcron-blogging-platform)
- [Migrating a Blog to GitBook](https://wiki-power.com/unlist/migrating-a-blog-to-gitbook)
- [Minimalist Guide to Creating a Personal Knowledge Base with VuePress](https://wiki-power.com/unlist/minimalist-guide-to-creating-a-personal-knowledge-base-with-vuepress)
- [Team Knowledge Base Setup Notes with DokuWiki](https://wiki-power.com/unlist/team-knowledge-base-setup-notes-with-dokuwiki)
- [Building a Knowledge Management System](https://wiki-power.com/unlist/building-a-knowledge-management-system)

## Summary

Rather than merely envying the fish at the edge of the abyss, it's more productive to step back and cast your own net. In the upcoming article, [**Building a Personal Knowledge Base with Docusaurus**](https://wiki-power.com/building-a-personal-knowledge-base-with-docusaurus), I will provide a detailed guide on setting up your own knowledge base.

## References and Acknowledgments

- [Why Wiki](https://wiki.imshuai.com/why-wiki.html)
- [Why Write on an Old-fashioned Independent Blog](https://zoomyale.com/2016/why_blogging/)
- [Why I Started This Blog](https://ehippocampus.xyz/whyblog)

> Original: <https://wiki-power.com/>
> This post is protected by [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by/4.0/deed.en) agreement, should be reproduced with attribution.

Please note that the provided translations have maintained the original links and markdown formatting while presenting the content in a professional and fluent manner.

This post is translated using ChatGPT, please feedback if any omissions.