# FUTO Notes URL: https://notes.futo.tech ## Your notes belong to you URL: https://notes.futo.tech Fast, private, local-first markdown notes for iOS, Android, Linux, macOS, and Windows. Sync is end-to-end encrypted to a server you run. # Your notes belong to you Fast, private, local-first notes. Native on iOS and Android, with a real desktop app for Linux, macOS, and Windows. Plain markdown you own, with end-to-end encrypted sync to a server you run — no vendor lock-in. [Download FUTO Notes](#download) [![Download on the App Store](/badges/app-store-badge.svg)](https://apps.apple.com/us/app/futo-notes/id6758355468)[![Get it on Google Play](/badges/google-play-badge.png)](https://play.google.com/store/apps/details?id=com.futo.notes) Linux · Android · iOS · macOS · Windows ![FUTO Notes running natively on Android](/screenshots/android-editor.png) ![FUTO Notes running natively on iOS, dark theme](/screenshots/phone-editor-dark.png) Native apps ## Native iOS & Android. Real native apps for iOS and Android. Full feature parity with desktop. No compromises. - No internet connection, works fully offline - End-to-end encrypted sync — the server never sees a readable note - Cross-platform desktop for Linux, macOS, and Windows - Desktop built on Tauri — lean and fast, not a Chromium bundle Markdown ## Write in markdown. Watch it transform. Markdown under the hood, but you never have to think about it. Headings, `**bold**`, checklists, tables, `[[wikilinks]]`, and fenced code — the syntax melts away as you type, leaving plain text you own, portable to any editor, forever. Encrypted sync ## End-to-end encrypted. Self-hosted. One command. Every note is encrypted on your device before it leaves. The sync server stores sealed blobs it cannot open — not the text, not the title, not the folder it lives in. Without your password, a copy of the server's data is unreadable. - AES-256-GCM on the device, under a random vault key only your password unlocks - Filenames and folder paths are encrypted too, not just the note text - Open-source client and server — run it on your own box, on your own network [Self-hosting guide →](/docs/self-hosting/) ``` curl -fsSL https://notes.futo.tech/install-server.sh | sh ``` Download ## Get FUTO Notes Pick the build for your device, or switch platforms manually. Beta release iOS Android Linux macOS Windows [![Download on the App Store](/badges/app-store-badge.svg)](https://apps.apple.com/us/app/futo-notes/id6758355468) [![Get it on Google Play](/badges/google-play-badge.png)](https://play.google.com/store/apps/details?id=com.futo.notes) Auto-updating sideload Track our GitLab releases and update automatically with [Obtainium](https://github.com/ImranR98/Obtainium). [![Get it on Obtainium](/badges/obtainium-badge.png)](obtainium://app/%7B%22id%22%3A%22com.futo.notes%22%2C%22url%22%3A%22https%3A%2F%2Fgitlab.futo.org%2Ffuto-notes%2Ffuto-notes%22%2C%22author%22%3A%22FUTO%22%2C%22name%22%3A%22FUTO%20Notes%22%2C%22preferredApkIndex%22%3A0%2C%22additionalSettings%22%3A%22%7B%5C%22fallbackToOlderReleases%5C%22%3Atrue%7D%22%2C%22overrideSource%22%3A%22GitLab%22%2C%22allowIdChange%22%3Atrue%7D) Requires the Obtainium app. You can also [download the APK directly](https://gitlab.futo.org/futo-notes/futo-notes/-/releases/permalink/latest). F-Droid Install and update through the [FUTO F-Droid repo](https://app.futo.org/fdroid/repo). [Add to F-Droid](fdroidrepos://app.futo.org/fdroid/repo?fingerprint=39d47869d29cbfce4691d9f7e6946a7b6d7e6ff4883497e6e675744ecdfa6d6d) Requires the F-Droid app. To add the repo manually: URL `https://app.futo.org/fdroid/repo` Fingerprint `39d47869d29cbfce4691d9f7e6946a7b6d7e6ff4883497e6e675744ecdfa6d6d` Copy ![QR code to add the FUTO F-Droid repository](/badges/futo-fdroid-repo-qr.svg) Scan to add the repo Download for Linux Standalone AppImage from the latest GitLab release. [Download AppImage](https://gitlab.futo.org/futo-notes/futo-notes/-/releases/permalink/latest) Package manager install Optional apt and dnf commands. apt dnf Debian / Ubuntu Copy ``` curl -fsSL https://pkg.futoinfra.com/futo-archive-key.gpg | sudo tee /usr/share/keyrings/futo-archive.gpg >/dev/null echo 'deb [signed-by=/usr/share/keyrings/futo-archive.gpg] https://pkg.futoinfra.com/futo-notes stable main' | sudo tee /etc/apt/sources.list.d/futo-notes.list sudo apt update && sudo apt install futo-notes ``` Fedora / RHEL Copy ``` sudo curl -fsSL https://pkg.futoinfra.com/futo-notes/rpm/futo-notes.repo -o /etc/yum.repos.d/futo-notes.repo sudo dnf install futo-notes ``` macOS 12 or later Latest macOS build from GitLab releases. [Download](https://gitlab.futo.org/futo-notes/futo-notes/-/releases/permalink/latest) Windows 10 and 11 Signed installer for current Windows devices. [Download](https://gitlab.futo.org/futo-notes/futo-notes/-/releases/permalink/latest) --- ## Changelog URL: https://notes.futo.tech/blog Release notes for FUTO Notes, newest first. What shipped in each version of the iPhone, Android, Linux, macOS and Windows apps, written when it shipped. # Changelog All the latest changes from FUTO Notes. [Subscribe by RSS](/rss.xml) 1. v1.7.1 2026-08-31 ## [FUTO Notes 1.7.1](/blog/futo-notes-1-7-1) The licence now permits commercial use, desktop feels properly native, and Android drops the drawer for the same layout as iOS. 2. v1.7.0 2026-08-13 ## [FUTO Notes 1.7.0](/blog/futo-notes-1-7-0) Batched blob transfers, prefix and fuzzy search, per-note undo history, and a much faster desktop start-up. 3. v1.6.1 2026-07-27 ## [FUTO Notes 1.6.1](/blog/futo-notes-1-6-1) A large sync and data-safety release — the vault password moves to the OS keyring, and the conflict-copy bugs are fixed. 4. v1.6.0 2026-07-06 ## [FUTO Notes 1.6.0 and the initial soft launch](/blog/futo-notes-1-6-0) The app landed on Google Play and the App Store, and the Linux apt and rpm repositories opened. Then a round of bug fixes. 5. v1.5.0 2026-06-11 ## [FUTO Notes 1.5.0 — full native mobile](/blog/futo-notes-1-5-0) The iPhone and Android apps were rebuilt as fully native apps, keeping the same editor and the same Rust core underneath. 6. v1.4.1 2026-05-12 ## [FUTO Notes 1.4.1 — the backspace crash](/blog/futo-notes-1-4-1) A post-mortem on the one crash that had haunted the app since launch, and the shield between IMEs and Chromium that fixed it. 7. v1.4.0 2026-05-11 ## [FUTO Notes 1.4.0 — folders](/blog/futo-notes-1-4-0) Folders arrive — create, rename, nest and drag notes between them, on desktop and on mobile. 8. v1.3.2 2026-05-06 ## [FUTO Notes 1.3.2](/blog/futo-notes-1-3-2) Nothing crazy in this release, just a bunch of bugs squashed — plus a new colour palette and code-block syntax highlighting. 9. v1.3.1 2026-05-01 ## [FUTO Notes 1.3.1 — and the name goes back to FUTO Notes](/blog/futo-notes-1-3-1) Stonefruit is renamed back to FUTO Notes, the editor gets a serious pass, and the E2EE sync server moves to its own repo. 10. v1.0.8 2026-03-23 ## [FUTO Notes 1.0.8](/blog/futo-notes-1-0-8) Mostly bugfixes and performance work — clipboard image paste, faster startup, faster note switching. 11. v1.0.0 – v1.0.4 2026-03-20 ## [Big Release Roundup](/blog/big-release-roundup) A self-hosted sync server, desktop apps for Linux and macOS, image support, wikilinks — and the app briefly becomes Stonefruit. --- ## Big Release Roundup URL: https://notes.futo.tech/blog/big-release-roundup A self-hosted sync server, desktop apps for Linux and macOS, image support, wikilinks — and the app briefly becomes Stonefruit. v1.0.0 – v1.0.4 March 20, 2026 # Big Release Roundup A self-hosted sync server, desktop apps for Linux and macOS, image support, wikilinks — and the app briefly becomes Stonefruit. Sorry for the lack of updates here, I was pretty locked-in to getting the presentation out the door, but now let’s talk about all the new stuff. This post covers several releases at once, from v1.0.0 through v1.0.4. ## Changes Here are the highlights: - the app is now called **Stonefruit** - Stonefruit has a **self-hosted sync server**, plus a CLI for setting it up - this enables **overnight automations**, **semantic search**, and **a semantic graph view** which I showed in Saturday’s demo - **desktop apps** are now available on Linux and macOS. Windows coming soon. - proper support for images (paste coming to desktop soon) - you can now link notes via `[[wikilinks]]` --- ## FUTO Notes 1.0.8 URL: https://notes.futo.tech/blog/futo-notes-1-0-8 Mostly bugfixes and performance work — clipboard image paste, faster startup, faster note switching. v1.0.8 March 23, 2026 # FUTO Notes 1.0.8 Mostly bugfixes and performance work — clipboard image paste, faster startup, faster note switching. Mostly bugfixes and performance enhancements. Fixed pasting images from clipboard. Startup times should be faster, switching notes should be faster. --- ## FUTO Notes 1.3.1 — and the name goes back to FUTO Notes URL: https://notes.futo.tech/blog/futo-notes-1-3-1 Stonefruit is renamed back to FUTO Notes, the editor gets a serious pass, and the E2EE sync server moves to its own repo. v1.3.1 May 1, 2026 # FUTO Notes 1.3.1 — and the name goes back to FUTO Notes Stonefruit is renamed back to FUTO Notes, the editor gets a serious pass, and the E2EE sync server moves to its own repo. It’s Friday, the ideal time to release the next version of Stonefruit FUTO Notes. Yes, we are re-rebranding back to FUTO Notes. The idea is that we want to build a suite of software that is instantly recognizable as FUTO-y. FUTO Keyboard led the way, and now with FUTO Notes and FUTO Music, the pattern is emerging. ## What’s new 1. **Editor enhancements** — FUTO Notes’s editor is much more solid. I spent a lot of time on this and explored many different solutions. I was frustrated with the myriad of edge cases that come up when building an editor like this. It’s not perfect, but the editor is much improved. Selecting text in particular works much better, especially cases where you select text that contains markdown syntax. 2. **E2EE sync** — I plan on offering a hosted E2EE sync service in the future. For now, a [self-hosted version is available](https://gitlab.futo.org/futo-notes/futo-notes-server). The goal is to build something that any other FUTO project can use. The sync server is now in a separate repo, but I encourage you to try to get it set up. The README should provide adequate instructions. 3. **Performance and bugs** — fixed a smattering of bugs and performance issues. The AppImage works on CachyOS now. ## What’s next? Still some bugs to iron out. I just found one while writing this post. I also see a few bug reports coming in that I’ll check out. Please keep reporting bugs! --- ## FUTO Notes 1.3.2 URL: https://notes.futo.tech/blog/futo-notes-1-3-2 Nothing crazy in this release, just a bunch of bugs squashed — plus a new colour palette and code-block syntax highlighting. v1.3.2 May 6, 2026 # FUTO Notes 1.3.2 Nothing crazy in this release, just a bunch of bugs squashed — plus a new colour palette and code-block syntax highlighting. Nothing crazy in this release, just a bunch of bugs squashed. - New “Ambient Precision” colour palette across the app - Syntax highlighting in fenced code blocks - Fixed bold/italic/strikethrough toggle leaving stray markers when text has trailing spaces - Restored the mobile keyboard toolbar and fixed selection-toolbar overlap on Android - Inline code reveal now styles cleanly when the cursor enters/leaves - Mobile: tap now places the caret accurately, and the keyboard pops up correctly when reopening notes - iOS: fixed keyboard viewport scrolling and focus when creating a new note - Android: fixed tag creation behavior in the tag bar - E2EE sync: preserve local mtime when reconciling divergent pushes --- ## FUTO Notes 1.4.0 — folders URL: https://notes.futo.tech/blog/futo-notes-1-4-0 Folders arrive — create, rename, nest and drag notes between them, on desktop and on mobile. v1.4.0 May 11, 2026 # FUTO Notes 1.4.0 — folders Folders arrive — create, rename, nest and drag notes between them, on desktop and on mobile. Folders! FUTO Notes now supports folders. - Sidebar folders: create, rename, delete, nest, and drag-and-drop notes between folders - Mobile folder support: full-sheet modals for folder ops, touch drag, durable open state - Quick capture is now mobile-only - Note moves preserve original modification times - Fixed macOS DMG notarization in Cirrus build --- ## FUTO Notes 1.4.1 — the backspace crash URL: https://notes.futo.tech/blog/futo-notes-1-4-1 A post-mortem on the one crash that had haunted the app since launch, and the shield between IMEs and Chromium that fixed it. v1.4.1 May 12, 2026 # FUTO Notes 1.4.1 — the backspace crash A post-mortem on the one crash that had haunted the app since launch, and the shield between IMEs and Chromium that fixed it. Ever since FUTO Notes launched internally, there has been one bug that has haunted me. With 1.4.1, it has been squashed for good. ## The bug On one tester’s Motorola phone running Android 11, all he had to do was open the app, tap the button to create a new note, then once the keyboard came up in the body of the note, hit backspace once. Within a couple of seconds, the app would crash. A few weeks ago I had him try again, but this time with a different keyboard. Aha! The crash did not happen on Gboard. Progress. I still couldn’t tell what was going on, though. ## Debugging This was the worst kind of bug because I could not replicate it. Oddly, his phone was the only device where we saw this issue. I tried to replicate this crash on my emulator as well as a similar Motorola device. No dice. I added crash reporting and got nothing useful. I added deeper crash reporting and still couldn’t figure out the root cause. Luckily, I was able to get him to reproduce the crash while plugged in to my computer running `adb logcat`, which helped immensely. This helped me find where the crash was occurring and properly diagnose the cause of the bug. **I still don’t know why I could not replicate this bug.** Best guesses: Chromium has this program named Finch where they run experiments on Chromium, so two people could be hitting different code paths. Or perhaps he was running an old version of FUTO Keyboard? Or had different settings/features enabled? Perhaps it was just a quirk with his specific processor, like a very specific race condition? ## The cause When you backspace in an empty field in FUTO Notes, FUTO Keyboard asks for the surrounding text so it can backspace properly. This is helpful for deleting special characters and emojis. The problem is that this fails a Chrome assertion when there is no surrounding text, and this triggers a SIGTRAP that kills the renderer process, which was causing the whole app to crash. Other keyboards like Gboard do not ask for surrounding text when the field is empty, it seems. That’s why we were only seeing this with FUTO Keyboard. ## The fix I essentially added a shield between IMEs like FUTO Keyboard and Chromium to intercept potentially problematic requests. So now when FUTO Keyboard asks for the surrounding characters while in an empty note, my Kotlin shield intercepts the question and answers it without telling Chromium. Additionally, we now handle renderer crashes more elegantly. --- ## FUTO Notes 1.5.0 — full native mobile URL: https://notes.futo.tech/blog/futo-notes-1-5-0 The iPhone and Android apps were rebuilt as fully native apps, keeping the same editor and the same Rust core underneath. v1.5.0 June 11, 2026 # FUTO Notes 1.5.0 — full native mobile The iPhone and Android apps were rebuilt as fully native apps, keeping the same editor and the same Rust core underneath. The headline here is **fully native apps for Android and iPhone**. I would love feedback on this. I’m a heavy user of the app on iOS and desktop. I found that the mobile app was not quite what I wanted. It didn’t feel _solid_, if that makes sense. My original strategy was to use Tauri to build a cross-platform app. Write once, deploy everywhere. Many of my competitors do something similar. I could have spent more time refining the mobile experience, but I was fighting something fundamental: the mobile web experience for most apps is just not that great. Especially compared to full-native apps. Of course, writing a full-native iOS and Android version of FUTO Notes would be costly in terms of time. Right?? I’ve been playing around with the idea of software factories. Instead of writing the thing, you write the thing that writes the thing. So in my case, I handed Claude the Tauri app and told it to make spec documents for it — basically a written description of the entire app. It looked at the code and drove the app via simulator to generate the docs. Then I asked Claude to make a native iOS and Android version of the app using the spec documents, but keeping the existing editor the same (a webview), and using the Rust core for any business logic. In other words, the actual Swift/Kotlin code is acting as a thin layer between the webview editor and the Rust core. I was thoroughly impressed by the results. The app feels better, looks nicer, and should perform better, too. But I want your feedback! Do you like the app better, now? Are you finding new bugs? --- ## FUTO Notes 1.6.0 and the initial soft launch URL: https://notes.futo.tech/blog/futo-notes-1-6-0 The app landed on Google Play and the App Store, and the Linux apt and rpm repositories opened. Then a round of bug fixes. v1.6.0 July 6, 2026 # FUTO Notes 1.6.0 and the initial soft launch The app landed on Google Play and the App Store, and the Linux apt and rpm repositories opened. Then a round of bug fixes. The week before this release we published the Don’t Be Evil III talk on FUTO Notes alongside the new marketing site, and published the app in the Google Play Store and the Apple App Store. Ever since, most of the effort has gone into fixing bugs and making minor improvements based on the response so far. ## New features and improvements - Desktop apps now auto-update where appropriate - Sync errors are now more visible to users - Better sidebar note previews - On Android you now have the option to use local storage that is accessible in the Files app - Allow plain HTTP sync servers ## Bug fixes - Clipboard image paste works more reliably - Fixed a bug where a single server could unintentionally create multiple vaults - Fixed issue with Windows builds - Android AAB is self-contained, making it possible to install on de-Googled devices - and a bunch more * * * For Fedora/RHEL or Debian/Ubuntu-based distros, you can now add our apt or dnf repository to get the latest version of the app — see [Installing on Linux](/docs/linux-install). The website also has convenience links for Obtainium and F-Droid. --- ## FUTO Notes 1.6.1 URL: https://notes.futo.tech/blog/futo-notes-1-6-1 A large sync and data-safety release — the vault password moves to the OS keyring, and the conflict-copy bugs are fixed. v1.6.1 July 27, 2026 # FUTO Notes 1.6.1 A large sync and data-safety release — the vault password moves to the OS keyring, and the conflict-copy bugs are fixed. ## Sync and data safety - Desktop E2EE vault password now lives in the OS keyring instead of a plaintext file - Fixed spurious conflict copies (disconnect-triggered, and the runaway case that could fan one note out into hundreds of identical server objects) - Crash-durable pull cursor: a crash mid-push can no longer hide peer changes from you - Tombstone fixes: deleted notes stay deleted, edit-vs-delete resolves in favor of the edit - The open note now closes when another device deletes it; deleted notes are pruned from tabs - Sync fails closed on local disk uncertainty instead of pushing a partial scan - Expired live-sync sessions recover without a full reset ## Editor - Images no longer get clipped when the editor is widened, and re-measure after they load - The caret can be placed past the end of a wrapped link - Fixed crashes when note content changed underneath the editor - Native text selection on mobile ## iOS - Swipe-back works again in the note editor - A long note title no longer widens the editor past the screen edge - Link button in the toolbar, tap-to-follow links, and wikilink autocomplete with back-nav - Drafts flush reliably when the app is backgrounded ## Android - Fixed the app hanging forever on “Moving notes…” when you change the vault location in Settings — previously a force-stop was the only way out - The note list keeps your selected folder and scroll position when you open a note, Search, or Settings, and restores both after a rotation or restart - Play Store 16 KB page-size and edge-to-edge compliance - Warning when the system WebView is too old to run the editor; minimum Android raised to 9 (reported on GitHub by decloyd) - Notes save correctly on FUSE/SD-card storage - No crash when no camera app is installed - Links in the editor open in your browser ## Desktop - The AppImage runs natively on Wayland instead of forcing X11 - Auto theme now follows the Linux desktop theme - Deleting a note sends it to the OS trash - macOS: sidebar drag & drop restored, plus atomic-write and config-permission fixes ## Folders and lists - Rename and move folders, on all three platforms - Deeply nested folders stay usable at narrow sidebar widths ## Other - Quick-capture notes and an inline tappable title on mobile - “Report an issue” link in Settings - Faster search startup (removed a duplicate index) --- ## FUTO Notes 1.7.0 URL: https://notes.futo.tech/blog/futo-notes-1-7-0 Batched blob transfers, prefix and fuzzy search, per-note undo history, and a much faster desktop start-up. v1.7.0 August 13, 2026 # FUTO Notes 1.7.0 Batched blob transfers, prefix and fuzzy search, per-note undo history, and a much faster desktop start-up. ## Sync and the note you’re editing - Better handling of changes that come in from the server while you’re editing a note - Faster transfers — blobs upload and download in batches, with timeouts scaled to size - A filename your platform can’t represent is now skipped instead of breaking sync for every device ## Search - Support for prefixes - Multi-word searches now require every word, falling back to any-word only when nothing contains them all - Fuzzy finding - Titles and recently edited notes rank higher ## Editor - Every note keeps its own undo history — leave a note and come back and undo still works, and it can never pull in text from a different note - Caret placement fixes - Title renames commit reliably when you move to the body, when the field loses focus, and across a whole drag - A duplicate title now warns you instead of quietly failing to save - Renumbering an ordered list undoes in one step, together with the edit that caused it ## Speed - Desktop opens much faster - The note list appears at startup instead of waiting for everything to load - The folder tree is virtualized — scrolling and flinging no longer blank out or drop labels - Large pastes, typing wikilinks in a big vault, note previews, and tag scanning no longer get slower as your vault grows - Collapsing the sidebar and typing in long notes hold their frame rate ## Android - Text fields in dialogs keep focus when the keyboard opens - The launcher icon renders at full size again - The editor is gated on what the WebView engine can actually do rather than its version number, so third-party WebViews work - Choosing a folder that already holds notes opens it instead of refusing - A note that fails to be created now reports the failure instead of disappearing ## iOS - A pending sync decision for the open note is kept while that note loads ## Safety and diagnostics - An incoming sync path that would escape the vault is rejected - Vault reads-then-writes are serialized across writers, including tombstone and folder operations - Installing falls back to a copy when the filesystem rejects atomic rename flags --- ## FUTO Notes 1.7.1 URL: https://notes.futo.tech/blog/futo-notes-1-7-1 The licence now permits commercial use, desktop feels properly native, and Android drops the drawer for the same layout as iOS. v1.7.1 August 31, 2026 # FUTO Notes 1.7.1 The licence now permits commercial use, desktop feels properly native, and Android drops the drawer for the same layout as iOS. Lots of small fixes and polish — and one thing that isn’t small: **the licence has been clarified to permit commercial use.** FUTO Notes now ships under the same terms as FUTO Keyboard. Use it for work, use it at your company, use it for anything you like. ## Sync - Better error handling, on desktop especially — you’ll see fewer errors during sync - The first sync after launch happens much earlier - External renames are handled better - Incoming changes update the note list incrementally instead of rebuilding it - Fixed a bug that showed empty, deleted folders on other clients ## Editor - Fixed a crash when typing near line breaks - Text arriving from another client no longer renumbers your ordered lists - Improvements to nested bullets and block quotes ## Desktop - More native-feeling throughout - macOS gets a proper application menu - Your window reopens the way you left it - No more white flash when the app opens - Better theme conformance, and Reduce Motion is honored - Floating tabs - Better note and folder renaming, and clearer feedback when a folder name is rejected ## Android - No more drawer and hamburger — the app is organized much more like the iOS version - Now targets Android 16 ## iOS - The keyboard toolbar looks much better - Overscroll fix - Crash reports include the device model ## Everywhere - Improved preview lines --- ## Install FUTO Notes on Linux URL: https://notes.futo.tech/docs/linux-install # Install FUTO Notes on Linux FUTO Notes is available from the FUTO apt and rpm repositories at [pkg.futoinfra.com](https://pkg.futoinfra.com). ## Debian / Ubuntu (apt) ``` curl -fsSL https://pkg.futoinfra.com/futo-archive-key.gpg | sudo tee /usr/share/keyrings/futo-archive.gpg >/dev/null echo 'deb [signed-by=/usr/share/keyrings/futo-archive.gpg] https://pkg.futoinfra.com/futo-notes stable main' | sudo tee /etc/apt/sources.list.d/futo-notes.list sudo apt update && sudo apt install futo-notes ``` ## Fedora / RHEL (dnf) ``` sudo curl -fsSL https://pkg.futoinfra.com/futo-notes/rpm/futo-notes.repo -o /etc/yum.repos.d/futo-notes.repo sudo dnf install futo-notes ``` --- ## Self-host FUTO Notes sync URL: https://notes.futo.tech/docs/self-hosting # Self-host FUTO Notes sync Run the FUTO Notes sync server on your own box and your devices keep each other up to date without anyone else in the middle. Sync is end-to-end encrypted: every note is encrypted on your device before upload, and the server stores sealed blobs it cannot open. See [how the encryption works](#how-the-encryption-works) below. There is no hosted service today, so self-hosting is how you get sync. It is a single-user server with one sync password. ## Install You need a Linux box with Docker and Docker Compose v2, on amd64 or arm64. ``` curl -fsSL https://notes.futo.tech/install-server.sh | sh ``` The installer asks for an install directory, a port (3005 by default), and a sync password, then starts one container and checks `/health` before it finishes. SQLite runs inside the container; the database and your encrypted blobs both live in a data directory under the install directory. ## Connect the app In the app, open Settings → Self-hosted sync → Server URL. On your own network, enter: ``` http://:3005 ``` Use the same sync password on every device. That password does two jobs: it signs the app in to your server, and it unlocks the encryption key for your notes. If you lose it, nothing on the server can be decrypted, and there is no reset. ## Reach it from outside your network The server speaks plain HTTP, which is fine on a LAN. To reach it from anywhere, put a TLS reverse proxy in front of it. [Tailscale Funnel](https://tailscale.com/kb/1223/funnel) is the least work: it gives the machine an HTTPS name without opening a port on your router. If you already run a public server, Caddy handles the certificate for you: ``` notes.example.com { reverse_proxy localhost:3005 } ``` Then point the app at the HTTPS URL instead. ## Upgrade and back up From the install directory: ``` docker compose pull && docker compose up -d ``` To back up, stop the container, copy the whole data directory somewhere safe, and start it again. That directory is everything the server has. ## How the encryption works The app does all of the cryptography. The server is a dumb store for bytes it cannot read, and it does the same job whether or not it is trusted. - When you first connect, the app generates a random 256-bit **vault key** on your device. - Every note is packed together with its filename and folder path, then encrypted with **AES-256-GCM** under the vault key. Each blob gets a fresh random nonce, and the authentication tag means a tampered or truncated blob is rejected rather than decrypted wrong. - The vault key is wrapped with a key derived from your sync password using **PBKDF2-SHA-256 with 100,000 iterations** and a random salt. Only this wrapped copy, the salt, and the KDF name are stored on the server. A new device downloads the wrapped key and unwraps it locally with your password. - The server never receives the vault key or a decryption key, and it never decrypts anything. What the server can see is the sync coordination data: how many objects there are, the size of each encrypted blob, when each one changed, and opaque IDs. It cannot see note text, titles, filenames, folder names, tags, or links. That means a copy of the data directory or a backup of it is worthless without your password. Three honest caveats. The sync password is also the login password, so whoever runs the server is handed it when a device signs in; in a self-hosted setup that person is you. The installer writes that password into the server’s `.env` file, so protect that file: it is created mode 600, it should not sit in the same backup as the data directory, and you can store a scrypt hash in `FUTO_NOTES_PASSWORD_HASH` instead of the password itself (the server README covers it). And the app speaks plain HTTP unless you put TLS in front of it; TLS protects the password and session token in transit, while the notes are already encrypted either way. ## Without Docker Release binaries are published for Linux, macOS, and Windows if you would rather run the server directly, with a systemd unit example. The server README covers that path. The full README and the source are at [gitlab.futo.org/futo-notes/futo-notes-server](https://gitlab.futo.org/futo-notes/futo-notes-server). --- ## Privacy Policy URL: https://notes.futo.tech/privacy # Privacy Policy Last updated: June 16, 2026 FUTO Notes is an offline-first notes app. Your notes are stored on your device. We have designed the app so that, by default, none of your content ever leaves your device — and even when you turn on sync, your notes are end-to-end encrypted and sent only to a server you control. ## Your notes stay on your device All core features work fully offline with no account. Your notes are kept in local storage on your device. We do not have a server that holds your notes. ## Sync is optional and self-hosted FUTO Notes does not operate a cloud sync service. If you choose to enable sync, you point the app at a sync server that _you_ host and control (the open-source FUTO Notes server). Your notes are end-to-end encrypted on your device before they are uploaded; the server only ever stores opaque, encrypted data. FUTO does not receive, store, or have access to your notes, your email address, or your password. Concretely: each note, including its filename and folder path, is encrypted with AES-256-GCM under a random vault key generated on your device. That vault key is itself encrypted with a key derived from your sync password (PBKDF2-SHA-256, 100,000 iterations) before it is stored on the server, so a copy of the server's data cannot be read without the password. The server can see how many notes you have, how large each encrypted blob is, and when it changed. It cannot see what any note says or what it is called. ## Deleting your data - **On your device:** open Settings and use **Full reset** to erase all local notes and disconnect sync. - **Synced data:** because sync data lives on a server you host, you delete it directly on that server. FUTO operates no account service and holds no copy of it. ## Crash reports To help us find and fix bugs, the app can send a diagnostic report when it crashes. This is enabled by default and can be turned off at any time in Settings. A crash report contains the error and stack trace, the app version, your device model and OS version, a random session identifier, and any note you choose to add before sending. Crash reports are sent to [notes-crashlog.futo.org](https://notes-crashlog.futo.org). They are not linked to your identity and are never used for advertising or tracking. ## What we don't do We do not use analytics, advertising, or third-party tracking. We do not sell or share your data. The app requests only the permissions it needs for features you use (for example, camera or photo access when you attach an image to a note). ## Contact For privacy questions or data-deletion requests, contact us at [privacy@futo.org](mailto:privacy@futo.org).