Skip to main content btwn u n me

Bringing Meraki Online - 1. (Re)Start

I was talking with my friend Will the other day. I’ve been going back and forth with him about Supabase and how I’m trying to solve various issues and problems that have been coming up while trying to rebuild Meraki and he mentioned that it would be valuable to document and post about some of these challenges and how I’m solving them.

One as a way to organize my thoughts and two as a way to share about what I’m doing to some of my users. I liked the idea so here we are. I hope to keep most of these relatively short. Maybe somewhat of a weekly recap or feature recap.

Some background on Meraki. During covid I built a simple todo list called Meraki. There’s the meme that its just a todo list and it is, but I built it during covid more as a way to have fun with designing something. Meraki is more of an exploration of designing something fairly barebones but with a level of elevated design and experimenting with fun custom controls in iOS. I’m quite proud of the custom paging control on the lists page, it just feels like a toy. The hope was that the fresh and clean aesthetic can help elicit a feeling of calmness when looking at tasks which is inherently stress inducing. The app seemed to take off and has a small, yet steady set of users. I often get emails about new features people would like and I also want to grow the app to have web version so that I can get a chance to have some full stack fun and build out a simple web app.

Over the years I got busy and maintaining the app got deprioritized. It lingered in the back of my mind, but I started 2025 with a new goal. Bring this offline only app online. I’ve given myself till Feb 20th to build out the backend and get existing users ported from local storage to a database. This is a kickstart, after the 20th I’m hoping to give the iOS app a UI uplift and bring up a web client. This series will follow the journey to bring Meraki Online.

Where are am I going

At a more technical level the current state of the app uses Realm.io as its backend locally. I chose this as a simpler alternative to Core Data and would allow me to get going quickly. I could simply create my model objects locally and Realm would handle syncing and and managing the underlying database. I didn’t need to worry about state, syncing, querying, etc. There is also no notion of a user, its a single app on a single device, and its persistence is tied to the user keeping the app around on their phone. All of this backend simplicity allowed me to focus on what I cared about, the design of the app.

The goal is to leverage a more mature and traditional architecture that will support cloud syncing and a more robust feature set for my users, while keeping the same beautiful and simple UI. Slightly more selfishly I wanted an excuse to use and play with Supabase. Having already started this effort about a week prior to writing this, I’ve already come across some issues and had to find solutions, so here’s to documenting this journey.