Your whole workspace,
where you keep it.
Pages and sub-pages, a block editor with slash commands, tables, boards and search across everything. If you have used Notion, you already know how most of it works.
The difference is underneath: every page is an ordinary
.md
file, in storage you connect.
- A folder on your disk
- Your GitHub or Dropbox
- A bucket we host
- No account needed nothing to sign up for
- Nothing connected every version, offline, by default
- No telemetry no analytics, no crash pings
- No AI features and none planned
Pages
- Website Rebuild
- Meeting notes
- Reading list
- Invoices 2026
Tasks
- Sprint board
- Today
Website Rebuild
The new structure is agreed. Content freeze is the fourteenth, and everything after that goes into [[Phase two]].
- Move the assets into the workspace
- Rewrite the pricing page
- Ask Rita about the photography
One workspace. Several machines. Storage you named.
A page written on a laptop is the file a phone opens, byte for byte, and a test holds the three of them to it.
Your storage
Connect your own. Or do not connect anything.
A workspace is a folder of Markdown files. That is true in all three of these, which is what makes them interchangeable: the workspace does not know or care which one it is sitting in, and moving it is moving a directory.
A folder on this computer
Point at a directory and start writing. Nothing is connected, nothing leaves the machine, and there is no account anywhere. This is the default and it is a complete product on its own.
Storage you already pay for
A GitHub repository or a Dropbox folder that belongs to you. Files travel between your own machines and your own account, and on a desktop or a phone they do not pass a server of ours on the way.
A bucket we host
For when you would rather not set any of that up. Two gigabytes cost nothing, a desktop or a phone uploads straight to storage with a one-hour key, and the files still arrive as the same folder of the same Markdown.
- Nothing is locked to us
- There is nothing to migrate out of. Your pages are already files, already readable, and already in a place you named, so leaving is a directory you keep rather than a download you wait for.
- Changing your mind is cheap
- A workspace that outgrows a folder can be connected to an account, and one that no longer wants an account is a directory you keep. Neither rewrites a page.
- Coming from Notion
- Hand over a Markdown and CSV export and it becomes pages, tables and files of your own. Links are rewritten to point by id, and nothing is uploaded: it is a folder being read on your machine.
- One workspace, several machines
- Whichever of the three you pick, the laptop, the phone and the browser tab open the same pages. What that costs in each case is spelled out under Synchronisation.
Back it up by copying the directory.
Where it runs
One workspace, three ways in.
The same pages, the same Markdown, the same rules about what a workspace is. What each one cannot do is on the card, not in a footnote.
Desktop
macOS, Windows, Linux
The full application. A workspace is a folder you point at, and everything on this page is here: synchronisation to your own account, the Notion import, publishing, local snapshots.
Phone
iOS and Android
The same workspaces, the same editor, reading and writing the same files. On iOS the folder shows up in Files, so the promise that your pages are yours is something you can see rather than read.
Browser
Any tab, offline
Load it once and it works with the network off: a service worker holds the application and the workspace lives in the browser's own storage. No updater, no Notion import, and synchronisation goes through us rather than straight to storage.
The browser is the one with an asterisk, and it is spelled out.
What passes through usWhat 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.
- Local snapshots
- A copy of everything you have written, taken on a schedule you set and kept inside the workspace. Version history for a page is read from them, so it goes back as far as your backups do.
- A calendar, and tables
- A month drawn from whatever the other modules publish, and rows with typed columns that can be embedded in a page. Both are modules you can switch off.
- Four languages, and modules
- English, Dutch, French and German. The tasks module was added without changing the core, through the same interface any other module would use.
Everything here is written, tested, and running today.
The format
A workspace is a folder. That is the whole format.
There is no database and no proprietary container. 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
.backups/ local snapshots of the text
.sync/ state, if you connect a remote
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.
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.
Airgapped is a filter, not a promise.
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.
Files travel between your machines and your account, and on a desktop or a phone they do not pass a server of ours on the way. There is one exception, it is the browser, and it is below rather than in a footnote.
- 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.
In a browser, your files pass through us
A tab cannot reach storage itself, so we carry the bytes for it. We keep none of them.
Two reasons, and neither is fixable in the application. There is nowhere in a browser tab to keep a storage credential that a script injected into the page could not also read. And storage will not answer a browser from another origin at all unless it has been configured to.
So when you synchronise from a tab, it asks us to read and write the files and we do it on its behalf. They are proxied and answered; nothing is stored here and what is left behind is a line in an access log with no path in it. The desktop and the phone are untouched by this and still go straight to storage.
The browser never names a file we could get wrong. It names a workspace and a path inside it, and the actual key is composed here from the account that signed in, so a tab that had been taken over entirely still could not ask for anybody else's notes.
- What it sees
- A browser user's files, while they are moving, and the paths inside that one workspace.
- What it keeps
- Nothing. Each request is performed and answered; none of it is written down here.
- Who this is not about
- The desktop and the phone. No file of theirs has ever passed through here and none does now.
Connecting to GitHub passes through us once
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.
- 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.
If you want us to host it
Two gigabytes free, and nothing about your files changes.
A bucket your workspaces synchronise to. Two gigabytes of it cost nothing; forty-eight euro a year holds ten and adds a subdomain you can publish chosen pages on. Cancelling leaves every page where it is, still synchronising, inside the free two, and nothing is ever deleted to collect a subscription.
Free
2 GB
Synchronisation between your own machines, a run every quarter of an hour, no site. No card, and nothing expires.
Hosted
48 EUR a year
Ten gigabytes, a run every five minutes, and a subdomain to publish chosen pages on.
- Storage you do not have to set up
- No repository to create and no folder to pick. A desktop or a phone gets one-hour credentials that can reach your prefix and nothing else, and uploads straight to storage: we hand out the key and the files do not come past us. A browser cannot hold that key, and its files do; that is the panel above.
- Publish parts, not everything
- Mark a page and it goes out at the address you chose. Nothing is published by default, nothing is published because it was in the same workspace, and unmarking it takes it down. This is the part the paid plan is for.
- Cancel and keep everything
- One click, no questions, and the year you paid for keeps working to the end. After that you are on the free plan rather than off a cliff, and your pages stay exactly where they are.
Payments are handled by Mollie, in your own browser. We never see a card number or a bank detail, and the account is an email address: there is no password, because there is nothing here for one to protect.
The plan is storage. The product is yours either way.
Already have an account? Signing in shows which plan it is on, how full it is and where your site answers. There is no password: you type an address and a six digit code arrives there.
Sign in to your accountGetting started
Pick where it lives, then start writing.
Everything on this page is written and working: the editor, the boards, the search, the import, the synchronisation and the hosted plan behind it. What is not here yet is the download. The desktop and mobile applications are not packaged for release, so there is no installer to hand you today, and this page will not pretend otherwise.
If you are waiting for one, the thing worth deciding in the meantime is the one at the top of this page: which of the three storages your notes should sit in. That choice outlives any version of this application, which is rather the point of it.