gitmyhub

git-diary

C# ★ 17 updated 15d ago

A minimalist personal diary that lives inside your own GitHub repository.

GitDiary is a browser-based personal diary that saves each entry as a Markdown file directly in your own GitHub repository, with no backend server or database.

C#Blazor WebAssembly.NETGitHub REST APIIndexedDBsetup: moderatecomplexity 2/5

GitDiary is a minimalist personal diary app that stores every entry as a plain Markdown file inside your own GitHub repository, instead of relying on a backend server or database. It runs entirely in your browser as a Blazor WebAssembly application, so you can host it for free on something like GitHub Pages, and there is no company server involved in storing or reading your writing.

Each diary entry is saved as one Markdown file organized by year, month, and day, so your whole diary is really just a folder of readable text files inside a Git repository. Because every save is a Git commit, your full edit history is preserved automatically, and you can browse, search, or roll back past entries the same way you would with any other Git-tracked project. The app autosaves two seconds after you stop typing, caching drafts locally in IndexedDB before syncing them to GitHub, and it keeps working if you lose your internet connection, syncing again once you are back online.

To set it up, you create a new GitHub repository to hold your diary, generate a fine-grained personal access token limited to read and write access on just that one repository, and then paste the token, repository owner, name, and branch into GitDiary's setup wizard. The token is stored only in your browser's local storage and is used only to talk to GitHub's own API, never sent anywhere else. Because GitDiary writes only inside a top-level Diary folder, you can also point it at an existing repository without disturbing other files in it.

Developers who want to build and run GitDiary themselves need the .NET 10 SDK. The README specifically warns that after publishing a release build, you must run an included script to pin the app's content security policy hash, or the app will get stuck on a loading spinner with no visible error. The project is licensed under the MIT license and is available in both English and Simplified Chinese documentation.

Where it fits