Back to AI Journal
18 Jul 2026

Replacing My Notion Databases with My Own iPhone App


NOTION DATABASES CLOUDFLARE IPHONE PWA EAT75 READ224 WATCH27 PEOPLE64 slow queries · fixed interface D1 private cloud copy Personal Index EAT READ WATCH PEOPLE Whitegrass5.0 LAVO4.0 Fortuna5.0 fast · custom · offline CLAUDE + MCP answers in seconds

Overview

A week ago, I built Poker Settle-Up for a game with friends. Everyone joined the same room on their phones, the data stayed in sync and the app worked with almost no explanation. To make that shared experience work, I vibecoded a small application programming interface (API) on Cloudflare so that every phone could read and update the same table. A Cloudflare Worker handled the requests, while a Durable Object stored each room’s temporary state and prevented simultaneous buy-ins from overwriting one another.

That experience made me curious about what else I could build using Cloudflare’s storage and database services. I eventually decided to try building a private mobile app for the personal databases I had accumulated over the years: restaurants to try, books to read, shows to watch, and the birthdays of friends, family members and their children.

Those databases previously lived in Notion, and I wrote about curating them with Claude only a month ago. I remain fond of Notion, but using Claude to query my Notion databases tends to be slow.

The NT progressive web app installed alongside other apps on an iPhone Home Screen

I built the replacement as a progressive web app (PWA), which is a website that can be added to an iPhone’s Home Screen and behaves much like an iOS app. It launches from its own NT icon in a full-screen window without the usual browser interface. Cloudflare hosts a private cloud copy of the data, while the original records remain as readable Markdown files in NickOS on my computer.

My Databases

Eat, Read and Watch

Eat database showing visited restaurants with cuisine, location, cost and personal ratings

Eat, Read and Watch are different versions of the same idea: databases of restaurants, books and shows, together with what I thought of them. Each keeps the information I care about most and can be searched, filtered or sorted within a moment.

Detailed restaurant entry showing a photograph, rating, cuisine, location, cost and last visit

The restaurant database records cuisine, location, approximate cost, when I last visited and my own rating. It works as both a memory and a practical shortlist when someone asks for food recommendations. The detail view keeps the photograph and useful information together without turning the main list into a spreadsheet.

Read database showing highly rated non-fiction books with covers, authors and categories

Read separates fiction from non-fiction and shows my highest-rated books first. I can narrow the list by reading status, category, rating or favourites. Watch is deliberately simpler, tracking what I plan to watch, what I am watching, what I have finished and what I abandoned.

People

People database showing personal circles and upcoming birthdays, with personal details blurred

People solves a different memory problem: my friends keep having children, but unfortunately my ability to remember all their names and birthdays has not expanded at the same rate.

Benefits of the App

Once the databases have loaded on my phone, I no longer need an internet connection to view my entries. I can continue to search, filter and sort them offline.

What I really like about this project is the control. I can customise every field, filter and form in the PWA, so the databases reflect how I use them rather than the structure of a general-purpose product.

The custom Claude connector is another benefit. I built it using the Model Context Protocol (MCP), which lets Claude search the Cloudflare databases and synthesise an answer from my ratings and notes. I can ask for the best Italian or Korean restaurants I have visited, or the best book I have read this year, in ordinary language.

The same questions through Notion would have taken minutes to answer. The new connector usually responds within seconds, as the video above shows.

The nicest part is that something I built mostly out of curiosity has already found a place in my everyday life. It makes information I had been collecting for years much easier to use, and I still enjoy finding small ways to improve it. That mix of usefulness and tinkering is what made this project especially satisfying.

Back to AI Journal