Yes. A Node app for this is very doable.
Notable is a good fit because its notes are plain Markdown on disk, it supports multiple data directories, and attachments are stored as files alongside the note library rather than in a proprietary database. The published tutorial also shows the expected data-directory shape as a root folder containing notes/ and attachments/. (Notable)
Here’s the clean outline I’d use.
Keep Notable as the authoring tool on Windows. Let your Node app do four jobs:
That keeps your notes as files first, app second.
Use one shared data directory as the source of truth, for example:
/home/rondoyle/notes-data/
notes/
attachments/
Your Windows Notable setup would point to the same library through whatever sync method you use, and the server app would treat that folder as read-only most of the time. Notable expects notes under a notes subdirectory, with attachments in a sibling attachments folder. (Notable)
Phase 1 should be:
.md files from /notes/attachmentsYou do not need MySQL for version 1.
Something like:
notes-app/
app.js
package.json
/routes
notes.js
/services
note-loader.js
search.js
/views
index.ejs
note.ejs
/public
styles.css
/data -> optional symlink to /home/rondoyle/notes-data
Or better, keep data outside the app entirely:
/home/rondoyle/apps/notes-app
/home/rondoyle/notes-data
Because this is personal notes, I’d start with:
127.0.0.1Important design rule: never trust a requested filename directly. Resolve it against the notes root and block path traversal.
A practical stack would be:
expressejsgray-matter for front mattermarkdown-it or markedsanitize-htmlfast-glob for scanning noteslunr or flexsearch for search indexDo not try to “become Notable.” Just read its files cleanly.
That means your app should assume:
So write the app around a configurable environment variable like:
NOTES_DATA_DIR=/home/rondoyle/notes-data
You already have the subdomain, SSH, and SSL working. So later it becomes:
/home/rondoyle/apps/notes-app127.0.0.1:3008notes.rondoyle.net to that portI’d make the first version do only this:
Once that works, everything else is much easier.
Because Notable supports multiple data directories, decide early whether your site will expose:
If this is just for you, I’d start with one. Notable itself supports multiple data directories, so your app can grow into that later if needed. (Notable)
If you want, the next step can be the actual starter Express app skeleton for this.