Skip to content
Noodletail Source on GitHub

Your notes are files on your disk.

Noodletail is a local-first workspace for Markdown pages, notes and tasks. Every page is an ordinary .md file in a folder you choose, and it stays readable whether or not this application is installed.

There are no packaged downloads yet, so today you build it yourself with npm run package:mac. MIT licensed, for macOS, Windows and Linux.

Your files

A workspace is a folder. That is the whole format.

There is no database and no proprietary container. Back up your work by copying the directory. Read it on a machine that has never heard of Noodletail by opening the files in any text editor.

The directory

my-workspace/
  workspace.json      name and id
  pages/              one .md file per page
    projects.md
    website-rebuild.md
  assets/
    images/           images used by pages
    files/            attachments
  modules/            module data, as JSON
    tasks/
  .trash/             deleted pages, recoverable
  .index/             search cache, safe to delete

A page

---
id: 01M07YY25YGGV74PZVQ46SDJG6
title: Website Rebuild
parent: 01M07YY2545ET5Y9JVZWF0DP4S
order: 1024
icon: null
created_at: '2026-08-17T13:35:18.717Z'
updated_at: '2026-08-17T13:35:18.830Z'
---

# Website Rebuild

A paragraph with **bold**, _italic_
and `code`.
The hierarchy is metadata
Moving a page in the sidebar edits one field. No file moves, so no link and no image path breaks.
Nothing is ever dropped
Markdown the editor does not model, such as footnotes or raw HTML, is kept exactly as written and shown as read-only source.
Formatting is normalised
The first save rewrites bullet markers and table padding into one style. The content does not change, but the bytes may.

What is in it

A writing tool first, with the rest built on the same files.

A block editor over Markdown
Slash commands, callouts, collapsible sections, tables, checklists, colour and highlighting. Everything round-trips through Markdown rather than HTML, so a save is a clean diff.
Wiki links and backlinks
Write [[Target]] with a page picker, and every page shows what points at it. Links follow a permanent id, so renaming a page never breaks one.
Search and a command palette
Full-text search across the workspace, offline, over an index that is only a cache: delete it and it is rebuilt.
Tasks and Kanban boards
Boards, list views, filters, and tasks that link to pages. A board can be embedded in a page, where it stays a real board.
Templates and a new-page dialog
Mark any page as a template and it is offered as a starting point. A template is an ordinary page with one line in its frontmatter.
A trash you can undo
Deleting moves a file to .trash/. A restored page keeps the id every link points at.
Export to HTML and PDF
One self-contained file with the images inlined, for sending a page to somebody who does not have the workspace.
Four languages, and modules
English, Dutch, French and German. The tasks module was added without changing the core, through the same interface anyone else would use.

Privacy

It asks before it connects.

The first thing Noodletail asks is whether it may open a connection at all. Choose airgapped and every outbound request is blocked at the session level, the update check included, not by convention but by a filter that cannot be talked around.

You can change the answer at any time under Settings, Privacy. A missing or unreadable settings file falls back to airgapped, so a failure produces the restrictive answer rather than the convenient one.

The question, as asked

May this application connect to the internet?

Airgapped

Nothing leaves this computer. No update checks, no synchronisation, no connection of any kind.

Allow connections

Updates and synchronisation become possible. Nothing is connected until you connect it.

Synchronisation

Optional, and to your own account.

Connect a workspace to a GitHub repository or a Dropbox folder that belongs to you. Files travel between your machines and your account. There is no upload path through any server of ours, and adding one would be a change to the product rather than an optimisation.

A real three-way merge
Edits made in different places on two machines are combined, using the last state both sides agreed on. A page renamed here and edited there ends up renamed and edited.
No conflict markers
Your version is left exactly as it is and the other one arrives beside it as a copy. A page is never handed back to you with <<<<<<< in it.
Nothing is unlinked
A file a synchronisation deletes goes to the trash, and nothing is overwritten without a copy kept for a week.

One step passes through us

Connecting to GitHub goes past our sign-in once, to fetch the token. We do not keep it.

GitHub will only hand out a token to someone holding a client secret, and a desktop application cannot keep a secret: anything shipped inside it can be read out of it. So your browser passes auth.noodletail.com on its way to GitHub's own consent screen, and that server makes the one exchange the application is not allowed to make itself.

It holds the token for seconds, hands it to your machine and deletes it. There is no account there, no database and no log of it, and it is never involved again: a workspace that is already connected keeps working with that server switched off entirely.

Dropbox does not pass it at all, because Dropbox does not require a secret. And you can skip the whole thing for GitHub too, by pasting a fine-grained token scoped to one repository. Either way the token lands in your operating system keychain, and is never shown, never pasted and never handled by the interface.

The whole handshake, endpoint by endpoint

What it sees
One authorization code and one token, for a few seconds.
What it keeps
Nothing. One entry in memory, ten minutes at most, deleted the moment your machine collects it.
What it never sees
Your pages, your attachments, your repository, your password. Files never travel through it.

Getting it

Build it from source.

Everything on this page is written and tested. Automatic local backups, and calendar and table modules, are still to come, and there are no packaged downloads yet, so for now you build it yourself.

Building it yourself

git clone git@@github.com:hansdeboeck/noodletail.git
cd noodletail/client
npm install
npm run dev

Node 20.19 or newer. npm run package:mac builds an application; there are equivalents for Windows and Linux.