Markdown notes, in your own GitHub repo

Notes that outlive
the app that made them

Write, link, study and publish in Markdown. Every note is a file in a GitHub repository you already own, and nothing is stored on our servers.

Free forever · No card, no trial · exactly what GitHub access this asks for

Rich text, split, or raw Markdown — the same file either way.

The tour

One notebook. Four jobs.

Pick one to jump to it, or scroll through all four.

  1. 01Own itYour notes are files in your repo6 tools
  2. 02Write and connectWrite once, link everything6 tools
  3. 03Learn and checkA notebook that tests you back6 tools
  4. 04Capture and shareBring things in, send things out6 tools

01 / 04Own it

Your notes are files in your repo

Saved on this device first, then committed to GitHub under your name.

  • Local-firstWrites land offline and sync when you reconnect
  • Clean commitsA burst of edits becomes one commit
  • Real historyEvery version, and who wrote each line
  • Time machineThe notebook as it was on any date
  • Honest conflictsBoth versions shown, and you choose
  • Branches and pull requestsRewrite on a branch, propose to others
How sync works →
Offline queue
  • sync-engine.mdpushed
  • storage.mdqueued
  • 2026-08-14.mdqueued
Conflict

This device

GitHub

02 / 04Write and connect

Write once, link everything

Three editors over one Markdown file, and links that turn a folder into a knowledge base.

  • Three editorsRich text, split or raw source, same file
  • Wikilinks and backlinksEach backlink quotes the line it is on
  • Offline searchEvery word of every note, ranked
  • Diagram studioDraw Mermaid diagrams, or type them
  • Graph, canvas, board, tableFour ways to see a folder
  • PDFs beside notesQuotes that cite the sentence, not the page
Tour the editor →
Links and backlinks

Meeting notes

Blocked until [[Q3 roadmap]] lands, then start [[Hiring plan]].

2 notes link here

Meeting notes

Blocked until [[Q3 roadmap]] lands…

Planning

Blocked until [[Q3 roadmap]] lands…

Search

⌕ migration

Hiring plan

…to keep the migration off my desk.

Platform notes

…the migration runs in two phases…

Diagram
DraftPRMergedRevise

03 / 04Learn and check

A notebook that tests you back

Turn notes into memory, and catch what your notes do not support.

  • Flashcards in the noteQuestion :: Answer becomes a card
  • Explain it backRecall a hidden note, see what you missed
  • Spaced readingHighlights come back on a schedule
  • Folder to courseLessons in link order, with a quiz
  • Claim checkerFlags sentences nothing supports
  • Stale-note alertsNotes whose facts have moved on
How flashcards work →
Explain it back
3/4
  • Light reactions split waterRemembered
  • Oxygen is releasedRemembered
  • ATP powers the Calvin cyclePartly
  • NADPH carries the electronsMissed
Flashcard

Why is the sky blue? :: Rayleigh scattering

Due today

Why is the sky blue?

ForgotHardGoodEasy
Worth re-reading

Deploy runbook

Worth re-reading — mentions v14 · 8 months untouched

How I think about scope

Never stale — nothing datable in it

04 / 04Capture and share

Bring things in, send things out

Clip the web, work with an AI assistant, and publish from your own repository.

  • Web clipperPages, quotes and highlights to your inbox
  • Voice and meetingsDecisions and to-dos pulled out
  • AI assistantsClaude reads and writes, as commits
  • Runnable codeOutput saved under the block
  • PublishA page, a book or a garden on GitHub Pages
  • ExportPDF, Word, HTML or Markdown, in the browser
Connect an assistant →
An assistant in your notebook
assistant → search_notes("Q3 roadmap")
assistant → append_to_daily_note(…)
commit 9e1b4c0 · Update daily/2026-10-12.md
Publish

Published

you.github.io/notes/q3-roadmap.html

A file in your repo, served by GitHub.

Export
.md.pdf.html.docx.txt

The toolkit

Everything it does, in one list

Not a roadmap. Every row below is shipping in the repository today, and works whether or not you have signed in — the GitHub half simply adds the history.

Write

Three editors over one file

Rich-text blocks, a live split view, or the raw Markdown. Switch per note — the bytes on disk are identical either way.

Read the docs →
  • Rich-text modeBlocks, a toolbar, and a bubble menu on selection
  • Split modeSource and preview side by side, on a draggable divider
  • Source modeCodeMirror with syntax highlighting and line numbers
  • Slash commandsType / for headings, lists, tables, code, diagrams
  • Markdown shortcuts# ␣, - ␣, > ␣, ``` ␣ and the rest, as you type
  • ImagesPaste, drop or upload — committed alongside the note
  • PropertiesTitle, tags and custom fields, stored as YAML front matter
  • Runnable code blocksRun a shell, Python or JavaScript block; the output lands under it, stamped
  • Tabs & outlineSeveral notes open at once, with headings and stats

Connect

A notebook, not a pile of files

Links, backlinks and search turn a folder of Markdown into something you can actually think in.

Read the docs →
  • [[Wikilinks]]The Obsidian dialect, with autocomplete
  • Backlinks panelQuotes the line each inbound link was written on
  • Link to nothingClicking a link to a note you have not written writes it
  • Full-text searchEvery word of every note, ranked with BM25, in-browser
  • TagsFilter the library by anything in the front matter
  • Web sources, archivedCapture a page as a citation, with a Wayback copy that outlives the link
  • Folders & treeReal directories in the repository, renamed in place
  • Command palette⌘K to jump to any note or run any command

Diagram

Mermaid, without learning Mermaid

A visual builder sits on top of the syntax. Drag nodes, edit labels, and the file underneath stays plain Markdown.

Read the docs →
  • Visual builderAdd, connect and drag nodes without typing syntax
  • 14 templatesFlowchart, sequence, class, state, ER, Gantt, mindmap…
  • Live renderingThe diagram redraws as the source changes
  • Source editorAutocomplete and error messages that point at the line
  • Positions persistNode coordinates round-trip through the file itself
  • Renders everywhereIt is a ```mermaid block — GitHub draws it too

Sync

Git, doing the part git is good at

Writes hit your device first and drain to GitHub as atomic commits. Close the laptop mid-sentence; it catches up when you land.

Read the docs →
  • Any repo you can push toNew, existing, private, or somebody else's fork
  • Offline-firstIndexedDB first, network second — always in that order
  • Atomic commitsA burst of edits becomes one clean commit, not forty
  • Full historyEvery version of every note, with diffs, in the app
  • Line-by-line blameWhich commit wrote each paragraph, how old it is, and what it said before
  • BranchesSwitch the branch you are writing on from the status bar
  • ConflictsBoth versions shown side by side — never a silent overwrite
  • Propose changesOpen a pull request against a repo you cannot push to

Ship

Getting it back out again

Every export is rendered in your browser. The note never leaves your machine in order to become a file.

Read the docs →
  • PDFTypeset for print, diagrams included
  • Word (.docx)Real headings and lists, not an image of a document
  • HTMLOne self-contained file, nothing to host
  • Markdown, text, JSONThe source, stripped, or with stats and properties
  • Export the workspaceEvery note at once, not one file at a time
  • PublishA public page committed to your repo, served by GitHub Pages
  • Opens local .md filesDouble-click a file on your desktop; ⌘S writes it back

Where this fits

Every other notes app is a rented room. This one is a deed.

You already have somewhere to put notes, so here is the honest case for moving — first against the categories, then against the products by name.

First by category — the three things you already have open, what each is genuinely good at, and the specific thing ForkLeaf does differently.

A hosted notes app

Beautiful, syncs everywhere, and someone else runs it.

The catch

Your writing lives in their database, in their format, behind their pricing. The export button is a promise you cannot test until you need it.

With ForkLeaf

Your notes are already plain files in your own repository. There is no export, because there was never an import.

A local folder of Markdown

Genuinely yours, fast, and nothing can take it away.

The catch

It is one folder on one machine. Syncing it, versioning it and reading it on your phone are three problems you now own.

With ForkLeaf

The same plain files, with git doing the syncing and the history, and a real editor on every device with a browser.

Editing Markdown on GitHub

The storage is already right — it is the repository itself.

The catch

No links between notes, no search worth the name, no diagrams you can see, and nothing at all when the train goes into a tunnel.

With ForkLeaf

Wikilinks, backlinks, full-text search, a visual diagram builder, and an editor that keeps working offline.

It is probably for you if…

Engineers who already live in git
Your notes end up in the same place as your code, reviewed with the same tools, and `git log` finally covers your thinking as well as your commits.
Anyone who has been burned by a shutdown
The failure mode of ForkLeaf disappearing is that you keep a repository full of Markdown files. That is the whole disaster.
People writing documentation in the open
The notes and the docs are the same files. Propose a change as a pull request; publish a page straight to GitHub Pages.
Anyone who thinks in diagrams
A Mermaid studio that does not make you learn Mermaid first — and the output renders on GitHub, in your README, everywhere.

And by name

Nine questions to ask before you put a decade of thinking somewhere. Notion, OneNote, Obsidian and Evernote answer them too — these are their answers, not ours about them.

How ForkLeaf compares with Notion, OneNote, Obsidian and Evernote
QuestionForkLeafNotionOneNoteObsidianEvernote
Where a note ends upThe thing everything else follows from.A .md file in a GitHub repository you ownA row in Notion's database, on Notion's serversA .one notebook in OneDriveA .md file in a folder on that deviceA note in Evernote's cloud
FormatMarkdown — readable in any editor, for everBlocks. Markdown export exists and loses thingsA proprietary binary formatMarkdownENEX, an XML format only Evernote writes
HistoryEvery save is a git commit — diffs, blame, revertPage history, on paid plans, for a limited windowRecent versions, per pageNothing built in; a plugin or git of your ownNote history on paid plans
Syncgit push, to a repository you already pay nothing forTheirs, included, and requiredOneDrive, includedA paid add-on, or a folder-sync tool you wire upTheirs, limited on the free tier
OfflineFully — edits queue locally and push when you reconnectPartial, and not something to rely onYesYes — it is a local appPartial, on paid plans
DiagramsA Mermaid studio; the diagram renders on GitHub as wellMermaid in code blocksFreehand drawing and shapesMermaid, plus pluginsSketches
CollaborationPull requests and review — proposed, discussed, then mergedLive multiplayer editing — genuinely excellentShared notebooksA paid add-on, or noneShared notes
If the company disappearsNothing happens. The notes were never hereYou have whatever you exported before it happenedFiles in OneDrive, in a format only OneNote readsYou still have your folder — same answer, and a good oneYou have an ENEX file to find a converter for
PriceFree, open source, and no account to closeFree tier, then per person per monthFree with a Microsoft accountFree for personal use; sync and publish cost extraFree tier with limits, then paid

The file is the product

Everywhere else the file is an export — a lossy copy you make when you are already leaving. Here it is the original, written the moment you stop typing, readable by every tool that has ever opened a text file.

History you did not have to buy

Not a version panel with a retention window. Real commits: what changed, when, why, and the ability to bring back a paragraph you deleted in March. That is a feature nobody else can sell you, because it is git.

Nothing to migrate, ever again

The last migration you do is the one into a repository. Change your mind about ForkLeaf and your notes do not move — you just open the same folder in something else. That is what makes trying this cheap.

Your notes go where your work already lives

Beside the code, in the review flow your team already runs, published to GitHub Pages when you want them read. No integration, no connector, no export step: the same repository, the same pull request, the same history.

Every app in that table can hold your notes today. One of them still can in ten years without your permission, your payment or your password — because it is not an app holding them at all. It is a folder of Markdown in a repository with your name on it, and ForkLeaf is the window you happen to be reading it through.

Ownership

Most notes apps ask you to trust them. This one is arranged so you don't have to.

No database of ours

There is no ForkLeaf notes table. Notes are files in your repository, and the only thing we ever hold is your session cookie.

Your token never reaches the browser

The GitHub access token is encrypted into an httpOnly cookie the server alone can open. Every API call is proxied, so no script on the page can read it.

Leaving costs nothing

Clone the repo. That is the export. Your notes were already plain Markdown in a normal git history the whole time.

Before you press sign in: what GitHub will ask you to grant

The hosted app requests the repo scope. That is broad, and we would rather say so than have you discover it on the consent screen. It is the narrowest classic scope GitHub offers that can write to a private repository — there is no “only this one repo” classic scope to ask for instead.

What it is used for
Reading and committing Markdown files in the repositories you connect. Nothing else is ever fetched.
Where the token lives
Encrypted in an httpOnly cookie on the server. It is never sent to the browser and never appears in a URL.
If that is too much
Sign in with public-repository access only, and ForkLeaf cannot open a private repository at all — or use it with no account whatsoever, on this device.

Pricing

Free. All of it. No tiers.

Your notes sit in your own GitHub account, so there is no storage for us to charge you for and no paywall between you and your writing. If ForkLeaf ever disappears, your notes are already in your repository and keep working without it.

Everything

The whole application, for everyone.

Freeforever

Start writing
  • Unlimited notes in your own repo
  • Unlimited connected repositories
  • Rich, split and source editing
  • Mermaid diagram studio with a visual builder
  • Markdown, HTML, Word and PDF export
  • Offline-first with background sync
  • Full commit history for every note
  • Conflict resolution that shows both versions
  • Works with any repo you can push to

Before you sign in

The questions worth answering first

The rest are in the documentation, which is written for the same reader.

Do I have to connect GitHub?

No. The editor works with no account at all — notes are stored on that device and nothing leaves it. Connecting GitHub is what adds sync, history and reading the same notes on another machine. You can start without it and connect later; open the editor and see.

What exactly is ForkLeaf asking permission to do?

The hosted app requests GitHub’s repo scope, which is broad — it is the narrowest classic scope that can write to a private repository. It is used only to read and commit Markdown in the repositories you connect. The token is encrypted into an httpOnly cookie the browser cannot read. If that is more than you want to grant, sign in with public-repository access only — or use ForkLeaf with no account at all.

What happens to my notes if ForkLeaf shuts down?

Nothing. They are Markdown files in a repository on your own GitHub account, in a normal git history. Clone it and carry on in any editor that reads text. This is the entire reason the app is built this way.

Is it really free, and what is the catch?

Free, all of it, no tiers. The expensive part of a notes app is storage, and ForkLeaf has none — your notes sit in your GitHub account, not ours. The project is open source under Apache-2.0 and funded by optional sponsorship. There is no paid plan being held back.

Will it work with the notes I already have?

If they are Markdown, yes — point ForkLeaf at a repository that already has .md files in it and it reads them where they are, including subdirectories and existing front matter. Obsidian-style [[wikilinks]] are the dialect it speaks natively.

Can I use it offline?

That is the default. Every keystroke is written to IndexedDB on your device first; the commit queue drains to GitHub when there is a network again, and the status bar always says plainly what is saved where.

More in the full FAQ, the security model and what data is stored.

Support

If something breaks, here is who to tell

ForkLeaf is free and open source, and it is also somebody's notes. Every route below reaches a person; the first one that fits is the right one.

Read the documentation

Most questions are already answered in writing — signing in, syncing, conflicts, exporting, and the errors people actually hit.

Open the docs →

Email support

Anything else: a bug, a note that will not sync, a question about your data, or a feature you wish existed. A real inbox, read by the person who builds this. If a reply seems late, check your spam folder.

support@forkleaf.in →

Open an issue

Bugs and feature requests, in public, where anyone else hitting the same thing can find the answer and add to it.

Go to GitHub Issues →

Report a vulnerability

Security findings go through the disclosure policy rather than the public tracker, so a flaw is fixed before it is advertised.

Read the security policy →

One person answers this inbox, so a reply takes as long as it takes — usually a couple of days. Nothing you send is needed to recover your work in the meantime: your notes are Markdown files in your own repository, and the support page lists what to try first and what to include when you write in.

Write the first note. It is a commit by the time you look up.

Free, open source, and stored in a repository you already own. Nothing to install and nothing to migrate off later.

No card. No trial. Your notes never touch our servers.