via
Download v0.4 · Linux & Windowsbuilt with Odin

via writer

simple tools for serious writers

Capture thoughts quickly, compose when you're ready, review and refine over time. Everything is autosaved in a vault on your machine as plain .md files and folders, with optional git support for backup and sync across devices.

10 Reasons to NOT use via (No AI, No Subscriptions — and other non-goals)

via version 0.4

built with Odin

Building via has been a Sisyphean task over the last decade and a half. The unicorn I couldn't catch.

As much as I disliked the baggage of web apps, it seemed a necessary evil to solve problems I had at the time — many of which turned out to have simpler solutions.

Now, with the simplicity & economy of Odin, the architecture aligns with what I envisioned via to be.

I've caught my unicorn, and she's got a sexy engine.

— moth

about via

via 0.2via 0.3via 0.4
size108 MB3.7 MB3.4 MB
libraries~ 1704715
memory–118 MB19 MB
at rest–9% of a core2% of a core
stackJS & Tauri 2
WebKitGTK + GTK
586 Rust crates, 125 Node packages
Odin's core library
Raylib 6.0
Odin's core libraryDownload v0.4

Library

Organize, explore and review

Organize, explore and review your documents and notes. Everything begins in a dedicated Drafts folder. Create projects for more complex work.

Workspace

Flow through writing tasks intuitively

The workspace has two panes viewing documents and notepads side-by-side. Quickly transition between documents and notepads to find what you're looking for. Write the right thing in the right place.

Document & Notepad

Write in the right place

Every document has a dedicated notepad with the same name. Notes and annotations live in a chronological, chat-like feed which you can edit, pin and develop over time until you're ready to write. On disk, notes are collocated with their doc as your-doc-notepad.md. Renaming the doc automatically renames the notepad. No more digging through apps and files for that idea you had.

Note — just have a rough idea? Start a scratchpad. Add a document later and it becomes the document's notepad.

Reviewer & Notepad

Annotate your writing as you read

In the library you can read and review your documents. Reviewer lets you add annotations to one or many paragraphs. Annotations end up in the document's same notepad for easy reference later.

Create, Save & Sync

No more 'Masterpiece-v5-FINAL-REALLY.md'

Writing is autosaved as you work. Save a checkpoint with a short description and via commits the document at that point, to look back on or restore. One click syncs your library to a git repo of your choice, for backup and sync between devices.

Editor

Write at the speed of thought

The editor uses via, a dramatically simplified "vi for authors": only two modes with a sensible set of traditional editor and familiar vi commands writers actually use. No complex chords, strange sequences, or contextually confusing keys.

Mindown

No tables, quotes, lists or other periphery

via is for writers, specifically authors who need basic structure and can't stand markup litter. (Of course, the beauty of markdown is that if you prefer it you can use it. No-one's stopping you.) via only renders:

# headers
1–6
_italic_
*bold*
// comment
handy for commenting out a line or adding an inline note to self

Note — # headers & comments fold: e expand · collapse current; E expand · collapse all.

Modes

No confusing contexts

via only has two modes: CTRL for commands, ENTER for writing. Esc switches to CTRL mode, Enter to ENTER mode. Hold Ctrl+key for CTRL commands, works the same in either mode. No confusing modes, submodes, chords, layers or prefixes.

Esc
CTRL mode
Enter or i
ENTER mode
Ctrl+key
a CTRL command, in either mode

Note — for contrast, typical modal editors (vim, nvim, helix etc.) have 3–8 modes, 4–8 layers, 2–4 prefixes, and any number of root chords. All of which can change the meaning of a key.

Move

No finger acrobatics

Before you can edit, you need to be in the right place. Movement is on the home row. No finger acrobatics (like w and b) for related movements.

h j k l
left · down · up · right
a s d f
line start · word start · word end · line end
t g b
top of doc · go [character] · bottom of doc

Select

No selection idiosyncrasies

If you aren't writing text, you're usually moving it. And to move it you need to select it: just hold Shift and a move key to select. That's it. Works the same in either mode.

Shift+move key
select

Note — Shift+G selects the entire document.

Operations

No mix of registers or lost clips

If you're going to move text you've selected, you'll need to cut, copy, paste, and when necessary undo/redo. So we kept with tradition + some common vi-isms.

z x c v
undo · cut · copy · paste
Z
redo

In addition, we have smart vi aliases:

u U
undo · redo
y
copies, for the "yankers" in the crowd

A pasteboard keeps your cuts AND deletions: any cut, delete or backspace of two words or more lands there, to paste back anywhere in the app.

p
opens pasteboard for a quick list of all cuts · copies · deletions

Note — what you last cut, copied or deleted is what pastes.

Search

Search once, pick it back up anytime

via has two ways to search: standard vi / for queries and g+key to quickly jump to the next character that matches. They both route through the same search system, so whichever you use, search can be resumed with the previous · next keys between other writing activities.

/
search query
g+key
go to the next instance of that character
n · N
next · previous match
Esc Esc
clear matches (n · N resumes last search)

File Management

Open, checkpoint, close

If you want to edit a document you need to open it. Everything is autosaved (similar to a web editor), so instead of the standard "save", via lets you save checkpoints. Checkpoints are just git commits. Add a concise description of your work and it commits that document's work, for easy review and restoration later.

o
open file picker or create a new doc
w
open the save sheet, describe the change, save a checkpoint
q
close the document (if there are uncommitted changes it will show a summary and a prompt to commit)

Note — via uses forward commits for restoration, so you don't rewrite history; any checkpoint in your document remembers what the document was like at that point.

Common Sense Functionality

A handful of handy commands

Space, Delete, Backspace
work the same in either mode
Shift+Space
inserts a space in front of the cursor
[ · ]
switch between document and notepad
{ · }
switch spaces in workspace
; · :
new line — opens a new line below · above the current one
' · "
join — the line below · above
.
repeat — repeats the last change you made
r
replace — deletes selection, goes into ENTER mode, write what you want there instead