Lemur Development Diary

Some of my favourite programming writing is Brent Simmons’ Vesper Sync Diary. Brent does an amazing job of describing the challenges encountered while implementing sync: one of the hardest things in programming to do well. Sync is often talked about in the abstract, but Brent discusses the specific tradeoffs of various solutions in concrete examples for the late notes app Vesper. The sync diary made a huge difference to the way I think about programming and writing about programming. I’m going to experiment with doing something similar.

For the last four years, I’ve been working on a little app for doing meal planning. I call it Lemur. It has gone through several iterations as a stack of paper index cards, a web app, a React Native app, and finally a native iOS app.

I don’t really want to write an app to do meal planning. But, I’ve tried dozens of meal planning apps over many years and none of them are right for me. Meal planning is something I have struggled with for years, so I’m making this thing because I personally need it. As I go through my journey of discovering what works for me, I’ve changed the app to incorporate what I’ve learned. I think, however, that the app might help other people too, and so eventually I’d like to release it.

I’m doing this alone, so I’ve been treating my role like more of a movie director than a producer. I spend a lot of time thinking through the little details of what makes a simple app like this useful, delightful, and nice.

There’s a few basic principles I’m working with:

  • The core problem to solve is: how do you quickly, efficiently, and delightfully plan what a family is going to eat.
  • The app should be “nice”.
  • I’m not aiming to build an app that does everything related to meals. A lot of the existing apps do the whole kitchen sink or focus on integration between meal plans and grocery lists. I only care about acing the process of making a meal plan.
  • I’m not prescriptive. I’m not telling you what to eat. Everyone is on their own journey. Maybe one day suggestions might be a thing, but I doubt it.
  • It has to be a better experience than just writing things down on a paper sheet with a pen. If the app doesn’t have app-specific advantages, there’s no point.
  • Seamless sync is necessary. Meal planning for a single person is generally not that complex. If you add the requirements and preferences of a family, you need sync to make the app worth it over what you can do with a paper sheet.

As I get closer to putting this on the App Store for people to try, I’m going to be working though some design, development, and product challenges. The most interesting of these I’ll write about here. Here’s some examples of what’s coming:

  • I’m struggling with when and how to appropriately integrate images into the meal planning process. Adding images makes things look nice, but it impacts speed in a way that isn’t great. I’ll work through the pros/cons.
  • I’m also trying to figure out what kind of filtering or sorting is the most conducive to finding dish options for a given time. I’ve tried difficulty and capacity filtering, some of which is working and some of which is not. I’ll show you were I’m at for this and talk through some of the tradeoffs.

I’m looking forward to sharing this journey with you.