explaingit

cholf5/git-diary

Analysis updated 2026-05-18

2C#Audience · developerComplexity · 2/5LicenseSetup · moderate

TLDR

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.

Mindmap

mindmap
  root((GitDiary))
    What it does
      Diary as Markdown files
      Stored in your GitHub repo
      Full Git history
      Offline support
    Tech stack
      Blazor WebAssembly
      .NET
      GitHub REST API
      IndexedDB
    Use cases
      Personal journaling
      Version-controlled writing
      Self-hosted diary app
    Setup
      Create GitHub repo
      Fine-grained access token
      Setup wizard

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Keep a personal diary as plain Markdown files, version-controlled and fully owned in your own GitHub repo.

USE CASE 2

Write offline and let entries sync to GitHub automatically once your connection returns.

USE CASE 3

Search and browse past diary entries by date using full-text search across all saved files.

USE CASE 4

Add a Diary folder to an existing GitHub repository without disturbing its other files.

What is it built with?

C#Blazor WebAssembly.NETGitHub REST APIIndexedDB

How does it compare?

cholf5/git-diaryatum-borg-interactive/road-sdkbabelive/windows
Stars222
LanguageC#C#C#
Setup difficultymoderatemoderatemoderate
Complexity2/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires creating a GitHub repo and a fine-grained personal access token before first use, self-building requires the .NET 10 SDK.

MIT license: use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

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.

Copy-paste prompts

Prompt 1
Walk me through creating a private GitHub repo and a fine-grained token to use with GitDiary.
Prompt 2
How do I run GitDiary locally with the .NET 10 SDK using dotnet run?
Prompt 3
Explain how GitDiary's autosave and offline sync work together when I lose internet connection.
Prompt 4
Why does GitDiary require running pin_importmap_csp.py after a production dotnet publish build?
Prompt 5
Show me the Markdown file structure GitDiary uses to organize diary entries by year and month.

Frequently asked questions

What is git-diary?

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.

What language is git-diary written in?

Mainly C#. The stack also includes C#, Blazor WebAssembly, .NET.

What license does git-diary use?

MIT license: use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is git-diary to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is git-diary for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.