nvnv — notes at the speed of thought

3 min read Original article ↗

introducing an implementation of notational velocity

nvnv
stores and
retrieves
notes.

It is an attempt to loosen the mental blockages to recording information and to scrape away the tartar of convention that handicaps its retrieval. The solution is by nature nonconformist.

01

Your notes should
feel like reflex.

nvnv keeps search, creation, and writing in one continuous motion. No folders to tend. No save button to remember. No tiny database holding your thoughts hostage.

⌘L → type → found

A

Type anything

One field searches every title and body as quickly as you can think.

mushroom risotto

B

Find or make

Jump to a match. No match? Press Return and the query becomes a new note.

Create note“mushroom risotto”

C

Keep moving

Write in plain text. nvnv saves automatically, quietly, and safely.

butter, thyme, shallots

keyboard firstplain textlocal foreveropen source

The actual
application.

One window. Search at the top, notes just below it, and the selected thought underneath.

02

Unique
characteristics.

Four principles.

MOUSELESS INTERACTION

Keyboard input
above all else.

nvnv's window was designed for keyboard input above all else, and thus has no buttons.

DATA INSTEAD OF DOCUMENTS

No save
button.

There is no manual “saving” in nvnv; all modifications take effect immediately.

INCREMENTAL SEARCH

Instant with
every key.

MODELESS OPERATION

Search is the
interface.

Searching for notes is not a separate action; rather, it is the primary interface.

UNIQUE CHARACTERISTICS

Four ideas,
one interface.

  • 01 modeless operation
  • 02 incremental search
  • 03 mouseless interaction
  • 04 data instead of documents

KEYBOARD REFERENCE

Every shortcut.
Close at hand.

Search, navigate, rename, move, and edit without leaving the keyboard.

⌘L
Focus the search/create field.

Type
Filter notes by title and contents.

Move through results while the search field is focused.

⌘J ⌘K
Select the next or previous note from anywhere.

Return
Open the selected or best title match; if none matches, create a note.

Escape
Clear the search or cancel a rename.

⌘D
Deselect the note and restore the previous search.

⌘R
Rename the selected note. Press Return to commit or Escape to cancel.

⌥⌘←
Return to the previous note/search context.

⌘Delete
Move the selected notes to Trash.

⇧⌘R
Show the selected note in Finder.

⌘[ ⌘]
Outdent or indent.

Tab ⇧Tab
Indent or outdent in the editor when “Tab indents text” is enabled.

⌘O
Choose another notes folder.

⌘Z ⇧⌘Z ⌘F ⌘X ⌘C ⌘V ⌘A
Standard macOS editing shortcuts work in the editor.

03

Fast, with
receipts.

Release-mode engine benchmarks on 10,000 notes with varied, 2,048-byte bodies.

Benchmark / workloadResult
Search
Broad cached search 10,000 notes · all match 13 ms
Selective FTS search 10,000 notes · one match 1.8 ms
Missing-term search 10,000 notes · no matches 12 ms
Missing-term load test 50,000 notes · no matches 63 ms
Filesystem
Initial library scan 10,000 note files 2.23 s
Warm metadata scan 10,000 unchanged files 438 ms
Incremental external scan One changed file of 10,000 16 ms
Indexing
Prepare search documents 10,000 notes × 2 KB 345 ms
Update SQLite + FTS One changed note 12.5 ms

Steady-state results are seven-run medians. Core measurements only; UI and launch timings are not included.

Methodology ↗

04

Your thoughts.
Your machine.
Your business.

05

Open by
nature.

MIT License. Permission is hereby granted. This software is provided as is. Use your agent.

github.com/sirodoht/nvnv

06

It's an
homage.

nvnv exists because Notational Velocity nailed the UX. Thanks Zachary!