Notes apps are the classic build-your-own project, and for once the reasoning holds: the requirements are personal, the data matters, and every commercial option eventually adds a subscription or shuts down.

1. Local-first, genuinely

Everything works offline, in the browser, with no account. Storage in localStorage for small collections or IndexedDB for larger ones. Syncing, if you ever want it, is a later addition on top — not a dependency.

notes-core.txt
Build a local-first notes app. One HTML file plus a couple of scripts.

- A list of notes on the left, editor on the right, working down to
  320px wide (list and editor become separate views on a phone).
- Notes stored in <localStorage / IndexedDB — recommend one for
  roughly <n> notes and say why>.
- Save automatically, debounced, with a visible saved indicator.
- Markdown, rendered in a preview.
- Full-text search across all notes.
- Every storage read and write in try/catch — private browsing throws,
  and that must not lose the note in the editor.

Show me the data shape you chose and how I'd add a field later without
breaking existing notes.

2. Make export a first-class feature

Not a settings-page afterthought. A button that downloads every note as Markdown files in a zip. This is what makes it yours — the guarantee that you can walk away with your data at any point, including away from your own app.

Import too. Then your app can read its own exports, which is also your backup restore path.

3. The details that decide whether you use it

Keyboard shortcuts for new note, search and save. Search that's instant. Never losing work on a refresh. A sensible sort — recently edited, usually. Undo that works.

That's the whole list. Tags, folders, backlinks and themes are all fun and none of them matter if the editor loses a paragraph.

4. Sync later, carefully

If you add it: a note edited on two devices while offline is the hard case. Decide the rule deliberately — last write wins, or keep both versions — and know that silently discarding someone's writing is the one unforgivable bug in a notes app.

Use it yourself for a fortnight before adding a single feature. Every real requirement shows up in the first week of actual use.