What it is

Cat Scratchpad is a to-do app that looks like a grid-paper notebook. Each list is an ordinary Markdown file, and every line with a checkbox is a task. The same file can be opened as a plain list or as a Kanban board, so you can write tasks quickly in the list and then drag them between columns on the board.

Why I built it

I keep my notes in Obsidian and wanted a phone app that writes tasks in the same files, in the same format, without inventing a private database. Most task apps either lock the data inside the app or sync through their own server. I wanted the file itself to be the source of truth.

How it works

  • Storage starts inside the app's own folder, so it works with no setup. If you use Obsidian, you can point the app at a folder inside your vault and the files move there. If you stop using the app, the files stay in the vault.
  • Dates are written as [due:: 2026-08-31] and priority as [priority:: high], the same dataview style used by the Obsidian Tasks plugin. Tags are #tags in the text. Tasks written in Obsidian show up in the app, and the other way around.
  • The app rewrites only the task lines it edited. Everything else in the file, including settings blocks written by the Obsidian Kanban plugin, is left untouched.
  • Features: list and Kanban views, due, start and scheduled dates, priority and tags, subtasks and notes, calendar import (any calendar visible in the iPhone Calendar app, including Google Calendar accounts), due-date notifications, and colored sticky notes you can reorder.
  • Runs on iPhone, iPad and Mac.

Monetization with RevenueCat

The first 14 days after install are a full trial with no purchase. After that, the app stays readable and editable, but creating new items (lists, boards, tasks, cards, subtasks, calendar imports) is locked until a one-time Lifetime Access purchase ($9.99, no subscription). The purchase and the pro entitlement are handled by the RevenueCat SDK, so the unlock works across the user's iPhone, iPad and Mac.

Built with

SwiftUI, StoreKit 2 through RevenueCat, EventKit for calendar import, UserNotifications, and a small Markdown parser written for this app. The project is generated with XcodeGen and shipped through App Store Connect.

Challenges

  • Writing back to a Markdown file that another program also edits, without destroying what the other program wrote. The answer was line-level editing rather than re-serializing the whole document.
  • App Review asked how a reviewer could reach the post-trial state without waiting 14 days. I added a review-only URL scheme that expires the trial on demand, which is also how judges can test the paywall.
  • Making a skeuomorphic paper interface that still reads clearly at small sizes.

What's next

Photo attachments on tasks, a separate calendar-import screen, and opening links from notes.

Built With

Share this project:

Updates

Submission history