Skip to content

robertdevore/strata

Strata

Release License Electron TypeScript React SQLite

Local-first Markdown notes app with optional AI, keyboard-first workflows, and a scriptable local API.

Why Strata

  • Local by default. Your notes stay on your machine.
  • Fast writing and navigation with command palette and hotkeys.
  • Optional AI assistance with explicit edit controls and revert history.
  • Local HTTP API + CLI for automation and agent workflows.
  • Security-hardened desktop architecture (sandbox + context isolation).

What is new in 0.6.0

  • Multi-pinned split panes (pin multiple notes at once).
  • Grid layout mode for pinned notes (2/3/4-column workflows).
  • Memory/performance improvements across renderer and main process.
  • Cleaner split-pane behavior and tab-level pin controls.

Install

Download a release

Get platform builds from GitHub Releases:

  • macOS: DMG
  • Windows: NSIS EXE
  • Linux: AppImage

Run from source

Requirements:

  • Node.js 20+
  • npm
npm install
npm run dev

Quick start

# typecheck + production build
npm run build

# create release artifacts
npm run dist

# run tests
npm run test

Core features

Notes and editing

  • Markdown editor with autosave + save state.
  • Rich-text paste to Markdown.
  • Split preview and editable note panes.
  • Tags, starring, archiving, undo delete.

Navigation and organization

  • Search and filtering by query, tags, and note state.
  • Quick Open and command palette.
  • Related notes + backlinks.
  • Pinned tags and customizable shortcuts.

AI workflows

  • In-app chat panel for drafting and analysis.
  • Provider/model routing controls.
  • Edit safety modes: read-only, confirm, auto-apply.
  • AI edit history and revert endpoint.

CLI and API

Base URL (local API):

Examples:

npm run strata -- health
npm run strata -- notes list --json
npm run strata -- notes create --content "# Note\n\nCreated from CLI"

curl http://127.0.0.1:3939/health

Security and data model

  • Notes/settings stored in local SQLite.
  • WAL mode + scheduled backups.
  • No mandatory cloud sync.
  • Electron hardening:
    • contextIsolation enabled
    • sandbox enabled
    • no renderer Node.js access

See SECURITY.md and docs/enterprise-readiness-checklist.md.

Project structure

app/
  main/      Electron main process, IPC handlers, DB, API server
  preload/   Secure bridge exposed as window.strata
  renderer/  React UI + Zustand state
  shared/    Cross-process types and contracts
docs/        Deep-dive docs (AI, CLI, publishing, enterprise)
scripts/     Dev and automation helpers
release/     Built installers/artifacts

Scripts

npm run dev
npm run build
npm run dist
npm run test
npm run lint
npm run format
npm run backup:notes

Documentation index

Troubleshooting

If Electron cannot load better-sqlite3:

npm rebuild better-sqlite3 --runtime=electron --target=40.8.5 --disturl=https://electronjs.org/headers

If TypeScript diagnostics in editor are stale while build passes, run:

  • TypeScript: Restart TS Server
  • Developer: Reload Window

About

Strata is a local-first desktop markdown notes app built with Electron, React, and TypeScript.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors