Focused Apps, Open to Agents

A focused app, an open data model, and your own agent

August 27, 2026

I wrote a note-taking app called MemNote to help with recall. Location, time, and device information are tied to the note so that when I see a note that’s simply “Bloodlands”, as I am wont to capture during a conversation with someone, I can see the note was taken on Wednesday night, while on a walk around my neighborhood with a friend, and on my phone, to help recall that it was a book recommendation.

What I built

At the heart of it, MemNote is a rapid, multi-platform note-taking app with the features I need to reliably take notes and have them be valuable later: automatic context capture, a clear organization structure with tags, local-first storage with cloud sync, edit history, semantic search, and a rich editor that’s markdown-native so capturing notes from Claude or ChatGPT is seamless. Data can be exported as a well-structured zip of markdown files and images, with the context stored as frontmatter.

I could have built a lot more, but I held back.

What I didn’t build

With AI development it is easy to add an enormous number of features to any app, and it’s easy to make AI a part of a lot of those features. But I didn’t build note summaries, tag suggestions, or a “chat with your notes” feature. I also didn’t build any integrations — no Kanban connector, no calendar sync, no send-to-your-task-manager. If you’re reading this, you already regularly use Claude or ChatGPT; they’re tuned to your needs. They have skills, memories, and integrations that already meet those needs better than I could anticipate. Therefore, MemNote exposes its data model through an API, an MCP server, and a custom GPT, so that it can easily integrate with your existing agent and workflow.

Not embedding AI, and exposing the data model instead, does more than keep the feature list short. First, it puts you in control and allows you to bring your own agent to the app. Second, it keeps MemNote a focused tool that does one thing well without limiting the ways in which you can use it. Finally, it saves on cost: you pay for the tokens once, directly from your provider of choice rather than having to pay for the agent I chose to embed, mark up, and pass on to you. It also means MemNote costs me under thirty cents a month to host, which is why it’s free for you to use.

Why this works now

Doing “one thing well” is an old adage that has always been easier to state than stick to. In the past there was a lot of pressure to add features: integration and customization carried high costs and was inaccessible to most folks — if the app didn’t do it, you were often stuck. If an application lacked a capability or didn’t integrate with your preferred tool, you had to use a different app. To stay relevant, application developers had to cover as many use cases as possible.

Today, those costs have all but disappeared. A model with access to an open API or MCP server can add capabilities on the fly, and from a natural language description. The bar for participating in someone’s complicated workflow is no longer a platform, it’s a clean data model and a well-described API.

The focused app finally gets to stay focused and remain relevant.

In practice

Today I store recipes, application ideas, book recommendations, notes about woodturning, and more in MemNote. My agent turned the application ideas into tasks on my Kanban board — and it knew which board to put which idea on. Had I tried to build that in MemNote, it would have been a challenge to use and difficult to get right: MemNote would have to know about my specific Kanban app, how to query it, and how to translate a terse note into something suitable for the board. It likely would have required a confirmation screen to ensure it “got it right” before creating the ticket, with options for changing things if it “got it wrong.” With a focused app, an open data model, and an AI agent, I can connect my notes to any Kanban board that has an API. And the ticket that lands isn’t just my terse note — the agent fills in implementation details and acceptance criteria from what it knows about the codebase.