Your data, actually yours
A folder of files that outlives the app.
The single promise Arf will not break is that your work belongs to you, in a form no company controls. Your vault is a plain folder: one Markdown file per note, an attachments/ folder holding the PDFs, EPUBs, and images you add — reference files beside it, note images in attachments/images/ — and a small header on each note. You choose that folder at first launch, and the app — native on Windows, macOS, and Linux — reads and writes it directly on your disk. Copy it to a USB stick, keep it in a Drive or Dropbox folder, open it in any editor, and it still makes sense. Everything Arf builds on top — the search index, the fingerprints, the graph layout, the order you dragged things into — lives in small sidecar files that can be deleted and rebuilt at any time. They are never precious, and they are never the only copy of anything you wrote.
Every note carries a short YAML header: a stable id, its title and tags, and two timestamps for each of created and updated — one in UTC as the universal standard, one in your machine's local time with its offset (…+03:00 in Istanbul). Arf reads your system's time zone, so the record is correct wherever the note was written, and the UTC field keeps sync ordering unambiguous across devices.
The .arf bundle
Sometimes you want the whole brain as a single object — to email it, to archive a dated backup, to hand it to a collaborator. An .arf file is exactly that: your entire vault, notes and attachments together, packed into one portable file. The working vault stays an open folder; the bundle is just how it travels.
Sync across your devices
Because your vault is an ordinary folder of Markdown files, syncing it needs no account with Arf and no server of ours. Keep the vault folder you chose at first launch in a place your devices already sync — Dropbox, iCloud Drive, OneDrive, Google Drive, or Syncthing. Point Arf at the same folder on each machine and you are done.
Choose the folder once. Arf keeps it in step — both ways, automatically, while you work.The sync flow, in one sentence
Arf watches the folder continuously. An edit you make on your laptop appears on the desktop within seconds; a note you delete on one device is removed on the others. There is no button to press and no command line — the cloud service you already use moves the files, and Arf reconciles them by keeping the newer version of each note. The header at the top of the sidebar shows the vault's folder name with a small live sync indicator beside it. Power users who prefer real version history can put that same folder in a git repository and commit underneath.
Arf writes real files to your disk; nothing is kept in a private app database. The .arf bundle export is always available as a dated backup of the whole vault.
What happens to your notes
Notes are the thing you cannot afford to lose, so every operation that touches a file is written to be safe rather than fast. Concretely:
| When you… | What Arf does |
|---|---|
| Rename or move a note | Writes the new file first and removes the old one only after the write succeeds — a note can never end up on neither path. A failed write (locked file, reserved name, path too long) leaves the note where it was and retries on the next sync tick. Notes are identified by a stable id in their header, not by filename, so renaming or moving the .md file yourself never loses it. |
| Move a folder | Rewrites the paths of its notes and subfolders in one step. A circular move into its own descendant, and a move onto a name another subtree already owns, are both refused — two folders are never silently merged. |
| Hit a sync conflict | Keeps the newer copy of each note. If the note open in the editor also changed on another device, the remote version is kept beside yours as a (conflict copy) rather than overwritten, so you choose which to keep. A note deleted elsewhere is tombstoned so it is not resurrected; a delete that could not complete is retried. |
| Back up or import | Exports every note, folder, and reference to one .arf file. Import merges by id and never overwrites a note you already have; imported notes are written into your current vault, not tied back to the file they came from. |
| Export a note | Writes a separate file and never touches the note in your vault. If the save is cancelled or the target is not writable, Arf tells you and leaves everything as it was. |
If the fast local cache ever becomes unreadable, Arf backs it up under a separate key instead of overwriting it, then rebuilds from the files on your disk.
Export your writing
Notes leave as easily as they arrive. Any note exports to Markdown, HTML, or PDF, and each format shows only the options that fit it — a Markdown export asks whether to keep the YAML header, a PDF export asks for page size and margins — so you are never faced with page settings for a plain-text file. The document export is built to avoid the things that make an exported file look broken:
- No orphaned headings — a heading is kept with the paragraph that follows it, so none is ever stranded alone at the bottom of a page.
- Images that fit — pictures are centered and scaled to the page, keeping their proportions, and code blocks are fit to the width instead of spilling past the margin.
- Your typography, preserved — the page keeps its EB Garamond setting, with page size and margins under your control.
Citations in the document resolve through the Library, so a manuscript exports with its reference list intact. A note's images travel with it too: the export inlines them, so the file you hand off is self-contained. A small Arf mark sits in the top-right corner of the page — and nothing else, no running header or footer.