From the Couch of Ben Johnson

Father, Principal Engineer at Prodigy Education, serial hyperbolist.

Lemur Dev Diary: Filtering

Lemur is a simple meal planning app in active development. I’m documenting some of the design, product, and development decisions as part of the Lemur Development Diary.

The basic structure of Lemur has two main areas.

This is the Plan:

And this is the List of Dishes:

Choosing a meal time displays a list where you can populate a meal with a dish that already exists or create a new one:

Lemur’s core mission is to make the flow of looking at your week (or a few days into the future) and populating the list with meals as quick and painless as possible. To make this efficient, I want to focus on the kind of thinking that happens when you’re trying to meal plan. I can present every dish in your database, but ideally, you’d have ways to look at things contextually. The current options on the screen to add a dish to a meal are:

When you’re trying to decide what to have for dinner on a Tuesday, you’re trying to fill a specific slot:

When you do that, I have been thinking that you’d ask yourself two primary questions:

  1. What do I have the capacity to prepare? (Difficulty)
  2. Do I have the things I need to prepare this? (Requirements)

As a result, when you add a new dish, right now the options look like this:

After living with this for a few weeks, I think Difficulty is on the right track, but I think Requirements isn’t right.

For me, the difficulty does matter. On a Saturday night, I have more time and energy to prepare something that requires more work. But, my flow for meal planning generally involves making the plan and then grocery shopping for the things I need to execute on the plan. As a result, I rarely run into a case where I’m planning to not have the things I need. I don’t think the Groceries/Pantry distinction is useful.

That said, I think that Restaurant might be useful, but it’s useful in that it indicates that the overall difficulty is zero. You don’t need to prepare anything except to go out or order Uber Eats. I think this can be better represented by adding a difficulty level that is effectively zero effort, or, when you mark a dish as a restaurant it removes the difficulty measure entirely. It’s more of a binary thing: is this a restaurant/take-out option or are you making it? If you’re making it, how hard is it?

As a result, I’m going to get rid of Requirements entirely for right now. I might add something to categorize Restaurants.

But, with what I have right now, t’s still too difficult to get to what you need.

I could add Smart Sorting. I could take your past choices and use it to populate the list of dishes, prioritizing things you often have for dinner. But, this feels like a leaky abstraction to me, especially given how much I love having breakfast foods for dinner. I’m also a little concerned that this results in a list that’s hard to mentally process because the order is all over the place. Still, this might be worth trying.

There seems to be a main/sides distinction. There’s a case where you’re going through the planning flow multiple times for each mealtime. For dinner, you’re adding a main meal, and you’re adding a side. If you’re trying to find the main meal, it’s annoying to have “Green Beans” in the list of possible items. This also seems like it might be a leaky abstraction because some mains can be sides, and some sides can be mains. But, I won’t stop you from doing that — we’re just trying to help you whittle down to a sane list that you can process visually.

The current sorting on the meals page looks like this:

I’m thinking that from an importance perspective, sorting is less important than filtering in finding what you need. Right now sorting is prominent and filtering is hidden behind a tap. If we reverse that and we add some more categorization options, we’d end up with something like this:

This enables quick filtering between mains and sides, and it also supports finding restaurants if it’s the kind of night where you just can’t even.

For sorting, I think I want to support Alphabetical, Frequent, and Recent. But, I don’t think people will often change between those. There’s probably some upfront preferences that make sense. So, I think I’ll start by defaulting to Alphabetical and maybe providing this an option in settings, rather than on this screen.

I’ll try this out in the beta and see how it feels over the coming weeks.