Optimize Your Life: Note-taking

Build Your Second Brain - Part 1

Welcome to the first post in the Optimize Your Life series, where we talk about some common problems all of us face and the solutions I put into place. Hopefully you walk away energized to look at what I’ve done and apply your own awesome ideas, or maybe just copy the source code and do exactly what I do.


“I know I wrote this down somewhere. Hold on. I’ll find it.”

Users say this multiple times a day. You wrote it down but the problem is you have no idea where “down” actually is. Your phone has three note apps, your laptop has a folder of docs you haven’t opened in months, there’s random sticky notes on your monitor, and you have seventeen Chrome tabs open.

You eventually find what you’re looking for, but you did that same search yesterday and you’ll do it again tomorrow. Every time you do, you’re scrambling, and your brain is doing the work a system should be managing. The problem isn’t that you don’t write important things down. The problem is being able to find it later.

chaos
What I imagine the typical user's desktop looks like

The second brain

To fix this, you don’t need more willpower, training, or a new habit app for your phone. You need a note taking system that works. You need one place to write everything down, find what you wrote, and access it no matter where you are or what device you’re using. You don’t need a new folder, one more tracking spreadsheet, or more browser tabs. You need one place where “I know I wrote this down” is always followed by finding it in a few seconds.

The whole idea behind a second brain is to offload the stuff your head shouldn’t have to store.

I spent years trying out every note taking system on the market. Google Keep, Obsidian, Joplin, WikiJS, Bookstack, TiddlyWiki, FlatNotes, etc. Each of them did something right but all of them had limitations.

Google Keep revolutionized the UI of note taking, but stopped innovating as Google typically does. They created color-coded notes that look like Post-Its and made it simple and fast to access. It has an intuitive interface, but it hasn’t meaningfully changed in a decade. It’s generally fine for grocery lists and nothing more.

Obsidian and Joplin are what my nerd friends swear by, and they’re not wrong. Both are powerful, both are flexible, but one major problem is using them across different devices. Installing one requires creating a sync workflow and understanding the conflicts when merges happen. If none of that previous sentence makes sense to you, then you should probably avoid these options.

Wikis were a different animal altogether. WikiJS, Bookstack, and TiddlyWiki share a similar design as Wikipedia. The idea of linked notes is genuinely a good idea, but the reality is you become a wiki administrator. It’s less a note taking app and more like a second job.

FlatNotes was the closest. I preached FlatNotes as the solution for a long time. It sported markdown files in a folder, has instant search, a clean UI, and an interactive preview. There was no database to corrupt and no sync conflicts. It solved most of the problems note apps typically have, but the missing features kept stacking up. For example, there was no automatic list continuation and no folder structure. Every time I needed something it couldn’t do, I learned to work around it.

Then one day I needed footnotes. FlatNotes didn’t have them and I sat there for a second thinking. “I could wait for the developer to add this or I could just build exactly what I want.” I build my own tools all the time. I don’t know why it took footnotes to make it obvious. So I opened my IDE that afternoon.

Mark 2.0

full_app
Mark - The full interface: side panel, editor panel, and preview panel

Two weeks later, I had Mark 2.0. The second generation of my simple markdown webapp. In fact, I’m writing this post in it right now.

Search finds anything in seconds, folder structure works the way folders should, screenshots paste straight in, and checkboxes in preview write back to the markdown source. I particularly love this feature. It’s in there exclusively because of grocery shopping. Clicking the checkbox checks the markdown source file and vice versa. If you don’t know what I mean, take a look:

shopping_list
Mark - checkboxes work in preview mode

Every note has its own unique URL so you can link directly from a task manager or calendar. It also autosaves while you type and, of course, has footnotes. Can’t forget the straw that broke the camel’s back.

It’s important to emphasize this: your notes are plain .md files sitting in a folder on your server. There’s no proprietary format, no locked database, and no export process. You can back them up however you already back up files. Markdown files will open in any text editor if Mark ever disappears or crashes. There’s no tracking, no new account setup, and no mandatory cloud spying. It works in Firefox and Chrome on any device on your network. There’s also no mobile app to install. Just open a browser and it’s there.

It’s the first note-taking app I’ve used where I don’t think about the app. I think about the note. That’s the whole point. The system should disappear. If you’re constantly working around the limitations of your solution, it’s time to move on.

“I know I wrote this down” still happens. The difference is now you can find it.

search
Mark Search - You can search for words or tags by typing /

editor
Mark - Editing a note with preview

Get it

Download Mark and try it out. If it mostly works for you but something’s missing, the source is there. Change it and add the feature(s) you actually want. That’s how this started in the first place. Instructions for setting it up are also included in the zip file.

If you walk away using only Mark 1.0, I won’t be offended. It’s free and there for you to use. It doesn’t track you and the notes stay local on your computer with zero server knowledge. Mark 2.0 used this app as the foundation and added a lot of really neat features. The original was used frequently during work meetings and will serve you well.

Features

I wasn’t able to speak about every feature, so here’s a massive list dump for you to read if you’re curious:

Editing

  • Full markdown editor with live line numbers (wrap-aware)
  • Smart list continuation
    • Enter auto-creates the next bullet, checkbox, or numbered item
  • Tab / Shift+Tab to indent list items
  • Syntax-highlighted fenced code blocks
  • Footnotes with bidirectional links
  • Strikethrough, tables, blockquotes, bold, italic, inline code
  • Autosave 800ms after last keystroke - no manual saving required.
  • Ctrl+S manual save as fallback

Preview

  • Split-pane live preview toggled with the Preview button
  • Interactive checkboxes in preview that write back to the markdown source in real time
  • Inline #hashtag chips rendered as clickable orange pills
  • Clicking a tag chip opens a pre-filled search for that tag
  • Footnote and heading anchor links scroll correctly within the preview pane
  • Syntax-highlighted code blocks in preview

Notes & files

  • All notes stored as plain .md files
  • Folder support with / in note names (recipes/sourdough)
  • Unique URL per note (/notes/folder/filename)
  • Browser back/forward navigation works natively
  • Rename and move notes via a click on the note title in the header, or hover actions in the sidebar
  • Delete with confirmation dialog
  • Last open note restored on page load

Screenshot & image support

  • Paste a screenshot directly into the editor (Ctrl+V)
  • Drag and drop image files onto the editor pane
  • Images stored in a hidden .attachments/ folder inside your notes directory
  • Upload progress indicator in the footer
  • Placeholder inserted immediately while upload is in progress

Search

  • Full-text search and highlighted snippets
  • Query syntax: plain text, "exact phrase", #tag, tags:name, or combinations
  • Arrow key navigation through results, Enter to open
  • Search index rebuilt from files on startup
  • File watcher keeps index in sync with external edits without restart

Tags

  • Inline #hashtag detection anywhere in note body
  • Tag filter chips in sidebar
  • Tag count displayed per tag
  • Tags shown on each note in the sidebar list

Sidebar

  • Note list sorted by most recently modified
  • Folder groupings with sticky headers
  • Hover actions on each note: rename/move and delete
  • On mobile: full-screen overlay drawer
  • Sidebar auto-collapses when you click into the editor

Export

  • Download current note as .md
  • Export as a fully self-contained styled HTML file
  • Copy as rich text. Pastes with full formatting into Google Docs, Word, and email clients.

API

  • Full REST API: list, get, create, update, delete, move notes
  • Full-text search endpoint
  • Tags and folders endpoints
  • Attachment upload and serve endpoints
  • Auto-generated Swagger docs at /docs

Infrastructure

  • Configured entirely via environment variables (NOTES_DIR, PORT, etc.)
  • systemd user service support
  • Mobile-responsive. Works on phone and tablet.
  • Firefox and Chromium compatible throughout

Notes

  • All the bugs I could find have been squashed. It’s solid enough to use daily.
  • That doesn’t mean there are no issues. Just that I haven’t found any more yet.

Questions or comments?

Previous: Not part of the 40% Next: Optimize Your Life: Remove URL Tracking