I'm building Margin: a Mac notes app where every note is a plain markdown file on disk

I've bounced between Apple Notes, Obsidian, and Bear for years, and every switch cost me something: exports, broken links, notes stuck in someone else's database. So I'm building Margin, a Mac notes app where notes are plain markdown files in a folder on your disk. There's no account and no database. Delete the app and your notes are still just files.

The part I care most about is in the middle of the video: because they're real files, anything can edit them. vim, a git checkout, an agent pointed at the folder. Margin watches the disk and reconciles live, and unsaved edits in the app win over external changes.

Also in the demo: an editor that feels like typing plain markdown but renders live (slash commands, date chips, code blocks), separate spaces so work and personal notes never share a screen, and a global hotkey that captures a thought without opening the app.

It's pre-beta and waitlist only for now: gomargin.app/sy

>What's the one feature of your current notes app you couldn't give up?

u/sth_wicked1 — 1 day ago

Edge cases I hit building a live-preview markdown editor

I've been building a markdown notes app on weekends (Margin, a local-first notes app where notes stay as plain .md files on disk, so discount everything below accordingly). I assumed markdown would be the easy part: grab a CommonMark parser and move on. The format had other plans. The ones that ate whole weekends:

- Pipes in table cells. A `|` has to be escaped or it splits the cell, but blindly escaping inside inline code spans corrupts them. Getting the serializer to escape cell markup while shielding code spans took embarrassingly long.

- Round-tripping. A live-preview editor parses your text, renders it, and writes it back. The write-back has to reproduce exactly what you typed: if you write `*` bullets and the serializer prefers `-`, the app silently rewrites your file. Since the files are plain markdown that other tools might read, I treat any normalization as data corruption, and holding that line is harder than it sounds.

- Paste. Everything arrives as HTML. Turning a pasted webpage or Google Doc table into markdown that survives a round-trip, with the smart quotes and nested span soup cleaned up, is its own project.

- The cursor. In live preview, `**bold**` renders as bold until the cursor enters it, then the markers reveal. Exactly when they appear and where the cursor lands is a product decision wearing a parsing costume, and you feel every wrong choice within minutes of typing.

Curious what bites other people, whether you hand-write markdown or build tooling for it. And if a local-first Mac notes app that keeps everything as plain files sounds useful, there's a waitlist at https://gomargin.app/mk

u/sth_wicked1 — 2 days ago

Margin: a local-first markdown notes app for macOS I'm building on weekends (waitlist open)

Hey, solo dev here. After years of bouncing between Apple Notes, Obsidian, Bear and a lot of other tools and ending up annoyed for a different reason each time, I started building my own notes app. It's called Margin and it's macOS-only for now.

The ideas I'm building around:

- Notes are plain .md files in a folder you own. No database, no lock-in. Edit a note in vim or change it through git or an AI agent and the app picks it up live.

- Separate spaces for work and personal notes, so shopping lists don't live next to meeting notes.

- Plain files turn out to be the best AI integration there is: point Claude at the folder and you can ask things like "which goals from January did I quietly abandon?" No plugin or API needed.

- It's a small native app built with Tauri, about 17MB, not an Electron wrapper.

It's not released yet. I'm collecting a waitlist while I finish the beta, and I haven't figured out pricing: https://gomargin.app/ia

Happy to answer anything about the build. And if you've shipped a notes app yourself I'd genuinely like to hear what surprised you, this space is more crowded and more unforgiving than I expected.

u/sth_wicked1 — 4 days ago

16 lessons learned building a productivity app on weekends

I've spent years being annoyed at notes and productivity apps. Too bloated, too slow, why is this button here. Now I'm a few months into building one myself, on weekends only. It's not finished and it has no users, so take this as notes from the workshop rather than wisdom from the mountain.

But between this, and products I've shipped in my day jobs over the years, here is what building it is teaching me:

  1. Typing is the whole product, and it's brutal to get right. I assumed the editor would be the easy part: drop in a solid open source component, 80% done in a weekend. The missing 20% is everything you'd actually notice as a user: paste without mangled formatting, undo that behaves, the cursor landing where your eyes expect. I'm months in and still on things I could never have named as a user but would have absolutely felt.
  2. Building only on weekends changed what I build. Time comes in four-hour blocks with two-week gaps, so the enemy isn't lack of time, it's the cost of resuming. Small finishable changes, notes to my future self, features that survive being abandoned mid-way. This made the app better, not worse: anything too complicated to put down and pick up later was probably too complicated to ship anyway.
  3. You can only really please a narrow range of workflows. Everyone wants their app simple AND their own workflow fully supported, and everyone's workflow is different. Every feature in a bloated app is somebody's reasonable request; grant enough of them and the experience gets worse for everyone, including the people who asked. The apps I respect most decided who they're for and let everyone else leave.
  4. Your own taste stops being trustworthy. After months of staring at it, I can't tell if something is intuitive or if I've just memorized it. I recently caught a keyboard shortcut that felt obvious to me and was completely undiscoverable to anyone opening the app cold.
  5. Defaults are the product. Most users never open settings, so every default you pick IS the app for them. Making something configurable isn't a decision, it's refusing to make one.
  6. Empty states are where apps die. The app looks great with my 200 test notes in it. A new user sees a blank screen and has no reason to type the first one. Designing for "nothing there yet" is a separate skill from designing the app.
  7. Performance can't be retrofitted. When things feel sluggish, users don't file a bug, they drift away. Slowness creeps in one reasonable feature at a time, and you only notice when it's expensive to undo.
  8. The last mile is invisible plumbing. Window restore, what happens on force-quit, the updater, the app icon at every size. None of it demos well, all of it decides whether the app feels trustworthy.
  9. Cutting a feature you already built is harder than not building it. Sunk cost hits builders too. I've caught myself keeping things because they exist, not because they earn their place.
  10. Users never mention the thing you're proudest of. They mention the icon, or a shortcut you added in an afternoon. I fully expect this to happen here too.
  11. "Fast" means something different to every user. Launch time, search, how quickly you can capture a thought. You can't win them all, and picking which one to lose is the actual product decision.
  12. Feedback tells you where it hurts, not what to build. Users are excellent at naming pain and terrible at prescribing cures. The requested feature is usually a clue, not a spec.
  13. You compete with habits, not with other apps. The real rival of any notes app is Apple Notes, a text message to yourself, or a piece of paper. Nobody switches because your app is better. They switch when it's worth breaking a habit for, and that bar is far higher than "better."
  14. Metrics lie politely on small numbers. Early on, every graph is noise with a trendline drawn on hope. One genuine conversation with a real user beats a dashboard.
  15. Naming things matters more than you think. What you call a feature shapes how people perceive it.
  16. Being a user of your own product doesn't make you the customer. I'm building it for myself, but "me" is a market of one. The discipline is figuring out which of my preferences generalize and which are just mine.

What are your own lessons from building them? Which points above resonate better with your own experience?

reddit.com
u/sth_wicked1 — 6 days ago

16 lessons learned building a productivity app on weekends

I've spent years being annoyed at notes and productivity apps. Too bloated, too slow, why is this button here. Now I'm a few months into building one myself, on weekends only. It's not finished and it has no users, so take this as notes from the workshop rather than wisdom from the mountain.

But between this, and products I've shipped in my day jobs over the years, here is what building it is teaching me:

  1. Typing is the whole product, and it's brutal to get right. I assumed the editor would be the easy part: drop in a solid open source component, 80% done in a weekend. The missing 20% is everything you'd actually notice as a user: paste without mangled formatting, undo that behaves, the cursor landing where your eyes expect. I'm months in and still on things I could never have named as a user but would have absolutely felt.
  2. Building only on weekends changed what I build. Time comes in four-hour blocks with two-week gaps, so the enemy isn't lack of time, it's the cost of resuming. Small finishable changes, notes to my future self, features that survive being abandoned mid-way. This made the app better, not worse: anything too complicated to put down and pick up later was probably too complicated to ship anyway.
  3. You can only really please a narrow range of workflows. Everyone wants their app simple AND their own workflow fully supported, and everyone's workflow is different. Every feature in a bloated app is somebody's reasonable request; grant enough of them and the experience gets worse for everyone, including the people who asked. The apps I respect most decided who they're for and let everyone else leave.
  4. Your own taste stops being trustworthy. After months of staring at it, I can't tell if something is intuitive or if I've just memorized it. I recently caught a keyboard shortcut that felt obvious to me and was completely undiscoverable to anyone opening the app cold.
  5. Defaults are the product. Most users never open settings, so every default you pick IS the app for them. Making something configurable isn't a decision, it's refusing to make one.
  6. Empty states are where apps die. The app looks great with my 200 test notes in it. A new user sees a blank screen and has no reason to type the first one. Designing for "nothing there yet" is a separate skill from designing the app.
  7. Performance can't be retrofitted. When things feel sluggish, users don't file a bug, they drift away. Slowness creeps in one reasonable feature at a time, and you only notice when it's expensive to undo.
  8. The last mile is invisible plumbing. Window restore, what happens on force-quit, the updater, the app icon at every size. None of it demos well, all of it decides whether the app feels trustworthy.
  9. Cutting a feature you already built is harder than not building it. Sunk cost hits builders too. I've caught myself keeping things because they exist, not because they earn their place.
  10. Users never mention the thing you're proudest of. They mention the icon, or a shortcut you added in an afternoon. I fully expect this to happen here too.
  11. "Fast" means something different to every user. Launch time, search, how quickly you can capture a thought. You can't win them all, and picking which one to lose is the actual product decision.
  12. Feedback tells you where it hurts, not what to build. Users are excellent at naming pain and terrible at prescribing cures. The requested feature is usually a clue, not a spec.
  13. You compete with habits, not with other apps. The real rival of any notes app is Apple Notes, a text message to yourself, or a piece of paper. Nobody switches because your app is better. They switch when it's worth breaking a habit for, and that bar is far higher than "better."
  14. Metrics lie politely on small numbers. Early on, every graph is noise with a trendline drawn on hope. One genuine conversation with a real user beats a dashboard.
  15. Naming things matters more than you think. What you call a feature shapes how people perceive it.
  16. Being a user of your own product doesn't make you the customer. I'm building it for myself, but "me" is a market of one. The discipline is figuring out which of my preferences generalize and which are just mine.

What are your own lessons from building them? Which points above resonate better with your own experience?

reddit.com
u/sth_wicked1 — 6 days ago

Roast my waitlist page: a markdown notes app for macOS, because the world clearly needed another one

I'm a developer and I built a notes app, which I know is the "I'll start a blog" of side projects.

The pitch: Margin is a markdown notes app for macOS where notes are plain .md files in folders you choose. No database, no lock-in, delete the app and your files are still there. Separate spaces for work and personal (or any other space you want to create), todos and tags live inline in the text, and AI stuff runs through your own API key, your local harness or a local model.

https://gomargin.app/ro

Things I already suspect are roastable, feel free to confirm:

  • YetAnotherNotesApp
  • It's a waitlist, not a download. You can't even try it yet.
  • I haven't decided if it's free or paid.
  • macOS only

What I'd actually love torn apart: the landing page itself (does the pitch land in the first screen or is it noise?), and whether "your notes are plain files any AI agent can read" means anything to a normal person or only to developers like me.

Go for it.

u/sth_wicked1 — 8 days ago

I kept capturing everything and using none of it, so I'm building a notes app around that problem

Disclosure up front: I'm the dev of the app mentioned below, so read accordingly.

My notes problem was never capture. I captured everything: meeting notes, reading links, shopping links, ideas, family stuff, all of it went in. The pile got heavy enough that I stopped opening it. Retrieval died, then the habit died.

A few things actually fixed it for me, and they're all boring:

Separation. When work notes, personal notes, and family todos live in genuinely different places, each pile stays small enough to stay useful. A grocery list next to sprint planning makes both worse.

Simplicity. Every system I built on top of my notes eventually became its own chore. Plain markdown files in a folder survived where every clever setup didn't.

Time orientation. Seeing "Today", "Tomorrow", "2 days ago" on notes and todos instead of raw timestamps orients me instantly. Small thing, changed how much I trust my own notes.

Fast retrieval. AI agents... Everyone talks about them rewriting text or extracting todos, but for me the real use is retrieval. My notes are plain files, so I can point an agent at the folder and ask "where did I write about X" and actually get an answer. Developer notes land differently here too, code snippets and technical scraps that were never findable by scrolling suddenly are.

I'm building all of this as Margin, a markdown notes app for macOS (mac only for now, sorry). Everything is local; your notes are plain markdown files on your disk, the app is just a view and editor over them.

Pre-launch, waitlist at https://gomargin.app if any of this sounds like your problem too. I have no idea if this is going to be a free or paid app, for now I'm just trying to see if mu struggles and gaps I identified are real or not

u/sth_wicked1 — 8 days ago