StoneNote is a local-first notebook built for teachers, students, historians, and archivists. It combines long-form writing with smart features like timeline, map pins, and one-click presentation mode.
- Local-first SQLite library (fast, offline, private).
- Smart Timeline per book.
- MapWizard: drop pins and see them on the book map.
- Present mode: auto-slides from notes/books.
- Wiki links with ghost notes and backlinks.
- Custom themes (global CSS).
- Plugin system with permissions + sandboxed host.
- Seeded "StoneNote Guide" on first launch.
- Electron + Vite + React
- TipTap editor (Markdown support)
- SQLite (better-sqlite3)
- Leaflet maps + Recharts charts
electron/main process, IPC, plugin host, DB accesssrc/renderer (React UI)src/components/Editor.tsxmain editor + toolbar + Wiki/Mapsrc/components/BookContents.tsxsmart tabs (Timeline/Map/Slides)src/components/Presenter.tsxslide deck viewerseed/guide/starter docsplugins/example plugins (circle-draw)themes/sample themes
- Library DB:
~/StoneNoteLibrary/library.db - User data (themes/plugins):
$XDG_CONFIG_HOME/stonenote-electron(or~/.config/stonenote-electron)
Install deps:
npm install --legacy-peer-depsRun dev:
npm run electron:devBuild renderer:
NODE_OPTIONS=--max-old-space-size=6144 npm run buildPackage apps:
npm run electron:buildLinux targets (from package.json):
debpacmanAppImage
Windows target:
nsis(.exe)
Note: RPM packaging needs rpmbuild on the build machine if you add it.
Linux (local):
npm install --legacy-peer-deps
NODE_OPTIONS=--max-old-space-size=6144 npm run build
npm run electron:buildWindows (recommended via CI):
- Use the GitHub Action in
.github/workflows/build-windows.yml. - Trigger by pushing a
v*tag or running the workflow manually. - Download the
.exefrom Actions artifacts.
If the build gets killed, increase Node memory or add swap:
NODE_OPTIONS=--max-old-space-size=6144 npm run buildPaste this into PowerShell (downloads the latest release installer):
iwr -useb https://raw.githubusercontent.com/esterzollar/StoneNote/main/install.ps1 | iexUse upload.sh with a GitHub token set in your environment:
export GITHUB_TOKEN="YOUR_TOKEN_HERE"
./upload.sh- Teachers building lesson notes into slides.
- Students organizing research into timelines and maps.
- Historians and archivists mapping sources and events.
- Smart Slides v2 (better slide parsing + layout themes).
- Smart Map v2 (named places + pin grouping).
- Mobile companion (read-only or quick capture).
- Collaboration exports (PDF/Slides/Share).
- Plugin marketplace and curated themes.
See API.md for the plugin API and permission model. Plugins are zipped and installed via Settings → Plugins.
See CSS_api.md for the global theme hooks.
- Plugins run in a sandboxed window and must declare permissions.
- Network access is blocked by default.
Free to use. Closed-source (no public source code distribution).