Skip to content

About

Simple nvALT-inspired markdown notes app

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

Gravity Notes

A simple note-taking app built on the Gravity UI ecosystem, with a Notion-style block editor for the note body. Runs as a web app and a macOS desktop app (Tauri). On first run you choose where notes live: a folder on your computer (plain .md files), or in-browser / in-app — and you can export/import .md files either way.

Philosophy

The app does little, on purpose. There is one box — type, and you are reading the nearest note or writing a new one, as in nvALT. The design takes after Things: plain, quiet, out of the way. Every action has a key. The type is set to be read; the notes are plain Markdown files, and they are yours.

Gravity Notes

Features

  • Your notes are plain .md files in a folder you own — or in-browser storage; export/import a zip either way
  • One box, keyboard-first (nvALT-style): type to search or create, Enter to open, Esc to step back — every action has a key (⌘/ for the sheet, or docs/shortcuts.md)
  • A block editor for the body: slash menu, drag-to-reorder, block selection, tables, to-dos, images — writing the same plain .md files. ⌘⇧; shows the raw Markdown behind them (with highlighting, find and replace, and list continuation), and a note the block model can't represent exactly opens on that source instead, so your file is never rewritten to fit the editor. An optional formatting toolbar (Settings › Show editor toolbar) puts the marks, text styles and block types one click away
  • Markdown as you type: headings, lists, tasks, bold, italic, code, strikethrough, ==highlight== and ++underline++; Markdown paste keeps complete blocks and surrounding text, and rich text pasted from Google Docs, Notion or a web page keeps its headings, lists, to-dos, tables, links and emphasis
  • Colour a block or a run of words — text or highlight — and it's saved with the note, as the {red}(text) / {bg:yellow}(text) syntax the preview understands (other Markdown tools show the braces; nothing portable exists)
  • YFM inline formatting: highlights, underline, subscript, superscript and monospace keep their original Markdown spelling when opened and edited
  • YFM notes and cuts open as callouts and toggles while keeping their original syntax, nested content and spacing
  • Code blocks with syntax highlighting, a language picker and a copy button — the language is the fence's own info string, so other tools see it too
  • Bare URLs are links as you type them (⌘-click opens one), while the note keeps them as plain text
  • Read-only preview (⌘⇧P), available from blocks or source, rendering CommonMark and YFM notes, cuts, interactive tabs, files and multiline tables
  • Markdown clipboard: ⌘C copies the selection as Markdown, not as rendered text; add Shift to copy or paste plain text with the Markdown stripped
  • Optional spellcheck — toggle “Check spelling” in Settings (off by default)
  • [[Wiki links]] and backlinks, stored verbatim — Obsidian-compatible; put the caret in a link for Open / Edit / Unlink
  • Full-text search across titles and bodies, ranked, with match snippets
  • Nested folders, pins, sort modes, note icons, and a recoverable Trash
  • Other files stay visible as muted, non-editable rows with full filenames and separate counts; reveal them in Finder on desktop
  • Images: paste, drop or /image into a note — stored as files in Attachments/, click to zoom. Any other file you drop is stored the same way and linked from the note (⌘-click reveals it)
  • Plays nice with other tools: external edits show up live in the desktop app (a folder watcher), with conflict handling when a note changes underneath you
  • Multiple workspaces & windows (desktop): switch folders with ⌃R, open a workspace — or a single note — in its own window
  • Resizable side panels: drag the divider beside the folder rail or the notes list (double-click resets, arrow keys nudge) — widths remembered per workspace
  • Make it yours: light/dark/system theme, editor font, accent color, text width — app-wide, per workspace, or per note
  • Mobile-ready: a single-pane list↔editor layout kicks in at ≤700px (phone, or a narrow desktop window); an iOS app opens an iCloud Drive (or on-device) folder of .md files through the native Files picker
  • Autosave, visited-note history (⌘⌥[ / ⌘⌥]), and automatic signed updates in the macOS app

Getting started

Download the app (macOS)

Grab the latest .dmg from the releases page (Apple silicon). The app updates itself in place from there. On first run, pick Open a folder (plain .md files you own) or Store inside the app — you can switch later, or export/import, from the storage menu in the top bar.

Run from source

You'll need Node.js. The desktop app additionally needs a Rust toolchain (rustc ≥ 1.88; rustup is recommended) and the Xcode Command Line Tools.

npm install
npm run dev          # start the dev server (http://localhost:5173)
npm run build        # type-check + production build
npm run build:single # single self-contained index.html (all JS/CSS inlined)
npm run preview      # preview the production build

npm run tauri:dev    # run the macOS desktop app against the dev server
npm run tauri:build  # build the .app / .dmg (arm64) → src-tauri/target/release/bundle

In the browser, any modern one works — but folder storage uses the File System Access API, which is Chromium-only (Chrome, Edge, …) and re-prompts for permission each session; Firefox/Safari get in-browser storage. The desktop app reads the folder natively, with no re-prompting.

Documentation

Backlog

  • Tune line-height

  • iCloud dataless files: not-yet-downloaded files list by name/mtime with an empty preview/search body, and recover once macOS materializes them (a focus refresh picks up the filled-in preview). Consider startDownloadingUbiquitousItemAtURL to kick off downloads in the background + a "downloading…" preview state so it isn't silent.

  • Density (line spacing) setting to complement the per-note font/width overrides?

  • Restore all workspace windows on relaunch (today only the last-active one comes back)

  • Preserve cmd+z across the blocks ↔ source switch

  • Cmd+z for undoing deleting of notes and moves between folders?

  • Edit YFM tabs, files and video, multiline tables (#| |#) and definition lists as blocks — such notes open in source today (parity doc D1–D3)

  • Easter egg in top bar (to the right of the search bar) ?

  • Notion-like page title backgrounds

  • Auto-empty the Trash and clean unused attachments (after 30 days?)

  • Metadata storage approach review

About

Simple nvALT-inspired markdown notes app

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages