A faster to-do list for Obsidian

A small React Native app to check off Obsidian to-dos on the phone, and the iOS sandbox that got in the way.

I use Obsidian for everything: notes, ideas and tasks. On the phone, managing to-do lists is slow. Sometimes I just want to check off a task or add an item, and the mobile app takes a while to load for that. It isn't a bad app. For quick edits I wanted something lighter, closer to Todoist.

So I started building a small React Native app.

How it works

  • You pick a Markdown file from Obsidian, or from any storage location.
  • The app reads the file and turns its to-dos into an interactive list.
  • You check items off, and the app writes the changes back to the file.

It's built with Expo, using expo-file-system to read the file and markdown-it to parse it.

The catch

Reading works well. Writing back is where iOS gets in the way.

iOS runs each app in its own sandbox. One app can't simply overwrite a file that belongs to another. My app could update a copy of the file, but not the original .md file Obsidian points to. Exporting and importing the file every time would defeat the purpose of a quick app.

What I wanted to try next

  • Adding to-dos from the app back into Obsidian.
  • A better interface.
  • Cloud storage, to get around the local file problem.
  • A calendar view for to-dos with deadlines.
  • Grouping to-dos by the headings they sit under.

A small tool for one job can be better than a big app that does everything.