Pine Notes is a minimal desktop Markdown notes app built with Electron.
It focuses on fast capture, a calm writing surface, and simple local-first storage. Notes stay on your machine, support Markdown preview, and can be packaged as a portable Windows executable.
- Clean two-pane note workflow with sidebar, list, editor, and preview
- Markdown editing with live preview
- Starred notes, archive view, and search
- Image paste / drag-and-drop support
- Local file-based persistence for notes and embedded images
- Portable Windows
.exebuild
Pine Notes is meant to feel lightweight and focused:
- fast enough for scratch notes
- structured enough for real Markdown writing
- local enough to avoid forcing cloud sync
If you want a private note tool that launches quickly and stays out of the way, this project is aimed at that experience.
- Electron
- Plain HTML / CSS / JavaScript
- marked for Markdown parsing
- electron-builder for packaging
- Node.js 20+
- npm
- Windows for the packaged
.exeoutputs
npm installnpm startBuild the portable executable:
npm run buildBuild portable executable explicitly:
npm run build:portableTypical build outputs:
dist/PineNotes-Portable-<version>.exe
Pine Notes stores data locally on the user's machine.
- Notes are saved as JSON in Electron's
userDatadirectory - Pasted or inserted images are written as separate local files
- The app migrates older browser-style localStorage data into the newer file-based storage on startup
This keeps the app usable even when notes include images, instead of running into browser storage limits.
- Plain Markdown editing
- Toolbar shortcuts for common formatting
- Keyboard shortcuts for create / bold / italic / preview
- Star notes you want to keep close
- Archive notes you do not want in the main list
- Search by title or content
Markdown preview is sanitized before rendering.
- raw HTML is not executed
- unsafe links are filtered
- image sources are restricted to safe URLs
main.js Electron main process and storage IPC
preload.js Safe bridge between renderer and main process
index.html App UI, styling, and renderer logic
package.json Scripts and packaging config
This project is intentionally small and focused. It does not currently include:
- cloud sync
- multi-device account support
- notebooks / folders
- export formats beyond the packaged app itself
Those would be natural next steps if the app grows.
- Export notes to Markdown files
- Add note tags
- Add theme variants
- Add import / backup tools
- Add recent-note pinning or quick switcher
No license file has been added yet. If you plan to publish or accept contributions, adding a license is recommended.