explaingit

siyuan-note/siyuan

📈 Trending43,961TypeScriptAudience · developerComplexity · 3/5ActiveLicenseSetup · moderate

TLDR

A self-hosted, block-based note-taking app where you own all your data locally, with two-way linking, databases, and spaced-repetition flashcards.

Mindmap

mindmap
  root((SiYuan))
    What it does
      Block-based editing
      Two-way linking
      Local-first storage
      PDF annotation
    Features
      Spaced repetition
      SQL queries
      Flowcharts & Gantt
      Plugin marketplace
    Tech Stack
      TypeScript frontend
      Golang backend
      Electron desktop
      Mobile apps
    Use Cases
      Personal knowledge base
      Research organization
      Student notes
      Writer workspace
    Deployment
      Desktop app
      Mobile iOS/Android
      Docker self-hosted
    Audience
      Researchers
      Students
      Developers

Things people build with this

USE CASE 1

Build a personal research database with two-way links between ideas and automatic backlinks.

USE CASE 2

Create a student study system with spaced-repetition flashcards and organized notes.

USE CASE 3

Run SQL queries across your own notes to discover patterns and connections in your knowledge.

USE CASE 4

Self-host a private note-taking system on your home server using Docker, keeping all data offline.

Tech stack

TypeScriptGolangElectronReactSQLite

Getting it running

Difficulty · moderate Time to first run · 30min

Requires building Electron app with TypeScript/React frontend and Go backend; Node.js and Go toolchain needed.

Use it freely, but if you run it as a network service, you must release your changes to users. Strongest copyleft for SaaS.

In plain English

SiYuan is a personal knowledge management application, think of it like a private note-taking and organizational system that you host entirely on your own devices, with no reliance on external cloud servers. The core problem it solves is that many note-taking tools store your data on someone else's servers, introduce privacy risks, and don't let you fully own or control your information. SiYuan takes the opposite approach: everything lives locally, and sync (if you want it) is opt-in. The distinctive feature of SiYuan is its block-based editing model. Rather than treating a document as a flat text file, every paragraph, heading, list item, and image is its own discrete block with a unique identifier. This allows you to create two-way links between specific blocks across different documents, so when you reference an idea in one note, that note knows it has been referenced from elsewhere. You can also embed database views, run SQL queries over your own notes, create flashcards for spaced repetition learning, attach math formulas, flowcharts, and Gantt charts, and annotate PDFs. There is a community plugin marketplace for extending the app further. You would use SiYuan if you want a serious, long-term personal knowledge base that you fully control, popular with researchers, students, writers, developers, and anyone who thinks carefully about how they organize information. It is also useful for people leaving tools like Evernote or Notion who want something local-first. The tech stack combines TypeScript for the frontend editor and Golang for the backend server. The desktop app is built on Electron (which wraps web technologies into a native window), and it also supports mobile apps for Android and iOS, plus Docker deployment for running it on a home server.

Copy-paste prompts

Prompt 1
How do I set up SiYuan on my local machine and start creating block-based notes with two-way links?
Prompt 2
Show me how to use SQL queries in SiYuan to search and organize my notes across multiple documents.
Prompt 3
What's the best way to use SiYuan's spaced-repetition flashcard feature for studying?
Prompt 4
How do I deploy SiYuan on a home server using Docker so I can access it from multiple devices?
Prompt 5
Can you explain how block-based editing in SiYuan differs from traditional note-taking apps like Notion?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.