Desktop markdown note-taking app (Electron + React) with:
- Filesystem-backed hierarchy at
~/.nim/notes - Folder tree + tabbed documents
- Editable
RenderedandSourcemodes - Toggleable autosave
- Local conflict handling for external file edits
- Soft delete to
~/.nim/.trashwith restore
- Node.js 20+
- npm 10+
npm install
npm run devnpm run buildThen start Electron (loads built renderer from dist/):
npm start~/.nim/notes/markdown notes and folders~/.nim/.trash/soft-deleted files/folders~/.nim/config.jsonapp settings~/.nim/session.jsonopen tabs/expanded folders
npm testRun end-to-end smoke tests (boots Electron and validates core UI chrome):
npm run test:e2eThis command uses npx @playwright/test and does not require a permanent local Playwright dependency.
Run full test suite:
npm run test:allCurrent coverage includes:
- Unit tests for
pathing,autosave, and markdown helpers - Integration tests for app bootstrap and note-open flow
- E2E smoke test for Electron boot + visible shell
npm run package:linux
npm run package:win
npm run package:macArtifacts are written to release/.
- CI workflow:
.github/workflows/ci.yml- runs unit/integration tests, production build, and Electron e2e smoke tests
- Release workflow:
.github/workflows/release.yml- triggers on
v*tags - builds platform installers and publishes to GitHub Releases via
electron-builder
- triggers on
Create a release by pushing a version tag, for example:
git tag v0.1.0
git push origin v0.1.0