What I learnt from building a COVID-19 food directory in 4 days.

Newsletter #24

Last week, I built dabao.directory. It’s a list of restaurants with COVID-19 special offers.

So far, 1,687 people have used my app and I’ve manually amassed about 100 restaurant listings, ranging from hawkers stalls to fine dining.

I also found out that my accountant had heard of and used dabao.directory prior to me telling her about it. Having my little app precede me makes me so happy and proud! 🤗

Btw, if you haven’t already, I’d love to invite you to check out the app by clicking on the image below.

Building something in a short amount of time also means learning very intensely. I feel like I could write 10,000 words on all I did and learnt, so culling it down to a single post was a struggle. Fortunately, the ruthless editor in me prevailed. So in this post, you’ll learn the 3 key takeaways from building an app in 4 days that got me 1.6k users.

But first, here’s some backstory…

It’s the start of part 2 of the lock down in Singapore, and I’m itching for something different to do.

How exciting and foreboding that I can un-ironically begin stories this way now. Ok, moving on…

By this point, I’ve used Singapore Restaurant Rescue a few times to order food. Unfortunately, the process of scrolling through a Facebook group to look for a restaurant is suboptimal – old listings are buried under new ones, and searching for what you want is impossible.

There’s also SG Dabao, but the blog format doesn’t lend well to food discovery either.

I kept hoping a food directory would pop up, but none did.

So, on a whim, I decided to build one.

The world of no-code

I’ve been a passive but interested observer of the no-code scene for awhile. Having built lots of websites with drag and drop editors, and as a passionate Notion user, I consider myself a no-code adolescent.

And having gone through no-code puberty, I decided a food directory would be the perfect opportunity to graduate into adulthood.

I began by looking for a no-code tool to build a directory. After a brief search in Product Hunt and Makerpad, I found Glide.

I also found Deliver Norfolk by Kieran Ball, which is pretty much exactly the app I wanted to make. I tweeted him excitedly to find out how to replicate his app. Very kindly, he obliged.


With tool and tutorial in hand, I began to build.

Takeaway 1: Rules, plans and processes were essential

I know myself well and my proclivity to let this small project get out of hand. To hedge against this, at the very beginning of the project, I created one rule for myself:

Rule 1 (and only): I must ship by Sunday. No questions. 

And off of this rule, I create a simple plan:

Day 1: Familiarise myself with Glide, and build a copy of Kieran's Deliver Norfolk.
Day 2: Make it my own by adding other features and design touches
Day 3: Populate app with Singaporean listings
Day 4: Put finishing touches on it and start telling people.

I spend the rest of the first day holed up in my room building the app. I think I might have built the entire thing on my bed.

When I begin, I have a million ideas, but lack the corresponding skills and knowledge of Glide to execute. The first day goes by with me angrily building, reading documentation and forums, and getting frustrated at Glide.

I manage to build a copy of Deliver Norfolk, but want to do so much more. I go to sleep dissatisfied.

The next morning I wake with a million more ideas. Thankfully, I have my one rule and 4-day plan to keep me in check. Were it not for them, I think the building and ideation would have overwhelmed me. I would either have given up, or launched much later with a bunch of additional but unnecessary features.

Sure, I was salty about having to downsize the scope of the app multiple times. I was also annoyed by how many workarounds I had to do. But launching was my main priority and that helped me make the necessary tradeoffs.

Applying process to populate restaurant listings

Having spent the first 2 days building my app, it was now day 3 and, according to the plan, time to populate the directory.

This is a dreary task of looking up Facebook pages, adding images and opening hours; and confirming I’ve got the correct promotion details.

Turns out, I’m pretty good at this.

I set a 5 minute timer for each listing and mark them off as I’m done. I usually go past 5 minutes but sometimes I’m under. It’s satisfying when that happens.

More importantly, having the timer keeps me on track. If you have mundane tasks to do, I highly highly highly recommend setting a timer.

But here’s the key: Don’t set your timer for a batch of tasks. Instead, set a timer for each chore. Tedious tasks feel much more manageable when broken down into 5 minute blocks, as compared to hour-long marathons.

Summarising takeaway 1: Rules, plans and processes are vital.

Notably, you can see how simple my rule, plan and process were. Don’t over-intellectualise or over-architect a project, or you might feel too intimidated to start.

Instead, create a map for yourself, keep it simple enough to actually follow, then go on your adventure!

Takeaway 2: USP vs all the other stuff

After I built the first version of the app and sent it to a few friends, I received this feedback:

I realised I built tabs, added cards, manually input a whole bunch of restaurant listings, but…

I neglected to make it obvious to users why they should use my app instead of Facebook groups, Burpple or some random food blog.

Doh! 🤦‍♀️

You see, I hadn’t made the unique selling point (USP) of the app clear enough. This had to change, and I did so in 4 key ways:

1. I explicitly say what the app is for

I state up front and early what the app is and why you should use it.

2. Make the #stayhome special offers more prominent.

Another friend wanted the offers to be shown more prominently.

She explained that when she browsed, there were only 2 things on her mind: who’s offering a deal and what’s open.

I haven’t addressed the what’s open problem yet, but highlighting my offers better was a priority. After all, that’s my USP (unique selling point)!

I solved this problem in two ways:

First, I changed each restaurant card to show the #stayhome special offer instead of the address. So that people browsing the directory can see the special offer straight away without having to click to open the listing.

De-prioritising the address made further sense because most places do island-wide delivery, meaning that the address of the place matters very little. There’s also a map tab that already allows people to search by geography.

The second change was made inside the full restaurant listing. Inside the listing, I moved the #stayhome special offer right to the top. So that users can view it without having to scroll.

Like the previous example, this is a simple re-prioritisation, to give users what they want and highlight the USP of the app.

3. The very first category in the app is now for restaurants paying it forward

If the USP of my food directory is COVID-19 restaurant specials, then it’s only right that I dedicate the top spot to restaurants trying to help. In this category, there are restaurants feeding frontline healthcare workers, others letting delivery riders keep 100% of delivery fees, and more.

I understand not all restaurants have the margins or enough business to pay it forward, but the restaurants who are helping are making sacrifices too and that needs to be showcased.

I really hope people choose to support the restaurants in this category!

4. Adding a COVID-19 aid tab

I also added a tab with a list of charities and projects for people to help out.

This tab is another subtle indicator that dabao.directory is different from any other food app or Facebook group out there.

Summarising takeaway 2: USP, USP, USP

Whew, I know this takeaway was long. Sorry!

At the beginning, I focused on building the bones of the app at the expense of overarching product strategy. As a result, people checking out the app couldn’t see why they should care about it or how it was useful to them.

By making some really small adjustments, I managed to bring the USP to the forefront of the app.

I might be wrong, but I think the USP is much clearer now. If it’s still not clear to you, please let me know. In fact, the more complain-y you are about it, the more it’ll help me.

Takeaway 3: Not everyone gives a shit, and that’s okay

When I finished building my app on Sunday, I was proud that I had finished, but not very proud of the app itself.

Regardless, I was done with the minimum viable product (MVP), and determined to share it as per my 1 rule of launching by Sunday.

I shared it with some friends via Whatsapp.

Unsurprisingly, the results were mixed.

Some friends were excited and supportive. They immediately tried dabao.directory out, and gave me thoughtful and insightful feedback. One friend warmly said that he hoped this goes big for me.

Because I only shared with friends, I didn’t get any trolls or outright haters. However, I did get a bunch of people who completely ignored me.

This happened in both Whatsapp groups and one-on-one chats. They would ignore my message about the app, and continue talking about something else entirely.

Let me be honest, this stung.

But at the same time, I’m an adult, and I’m able to have a negative feeling without reacting to it.

The reality is:

  • People are busy, and sometimes they forget. Surely you’ve forgotten stuff too, right? So you’ll know that it isn’t personal.
  • People genuinely don’t like your app, and don’t know how to say so without hurting your feelings. The fear of hurting you is personal, but their dislike of the app isn’t personal.
  • People don’t understand your app, and don’t know how to say so. It isn’t personal.
  • The app is not ideal for them because they’re the wrong target audience. It isn’t personal.
  • They’re the right target audience, but they’re late adopters. They always ignore new things because it’s untried and untested and it makes them uneasy. Whatevs! It isn’t personal.

I think you get where I’m going with this.

Personally (haha), I still felt a little bitter that some friends and family members ignored me. But at the end of the day, reminding myself that it isn’t personal helped me get over it without hurting any relationships.

Besides, getting ignored is a form of feedback too.

Putting yourself out there will always be personal to you, and getting rejected or ignored always hurts. But applying a constructive and thoughtful perspective to the feedback you receive (or lack thereof) helps you analyse it while keeping your feelings at bay.

I don’t always succeed at this. Sometimes I lose control and get snippy. But I always apologise. And no matter what, putting stuff out into the world is always better than hiding the stuff you’ve made in shame, fear and embarrassment. You can’t fail forward that way.

Wrapping up

This is a screenshot of the usage of my app. It’s a web app, so you can use it via a URL. You can’t download it on the Apple or Android store. The numbers you see here are people browsing and using the app. On average, people used it for 2 minutes and 19 seconds.

After my mini launch on Sunday, I polished a few features and added more listings. Then, I posted the app on Facebook and Instagram.


Facebook fared better than Instagram. The first 200 user spike in traffic I got on 5 May was from Instagram. I posted on Facebook the following day, which really took things to the next level. From that post, I got over a thousand people using the app that day.

I also suspect my mother sharing the app in all her aunty Whatsapp groups helped a lot too.

These days, it seems like I average about 200 users a day, which is nice.

Tbh, I’ll never know why so many people used my app so suddenly. But here are some retrospective guesses…

Let me be clear, I didn’t get 1.6k users because of any special marketing I did, nor because I have a huge existing following. I’m also not good at making apps (this was my first time).

Anyone who writes a long case study telling you about a magic formula is definitely a victim of recall bias (where a person over or underestimates the strength of association of past events). They’re probably also trying to sell you something.

Nevertheless, here are a few guesses as to why my app got shared so much:

  1. I stumbled upon an unmet need. It seems like many others were dissatisfied with searching for COVID-19 deals via Facebook and Whatsapp groups like me. The fact that these unusual times were thrust upon us unexpectedly meant that the lack of a COVID-19 food directory was a problem that suddenly occurred, and I happened to be one of the early people to solve it.
  2. Most of the traffic to the site is direct traffic. This makes me think Whasapp is the most common way my app is shared. I suspect the simplicity of the app and easy-to-type URL makes it very easy to share and talk about.
  3. Number of users must be looked at in relation to total addressable market. In my case, my market size in probably in the mid to high 6-figure range (hundreds of thousands), judging by the size of some of the COVID-19 restaurant Facebook groups out there. So getting 1k users isn’t that impressive. Also, let’s not forget that this is a free app. If you’re a B2B enterprise software company in a small but uncompetitive market, getting 5 users might be a much bigger milestone. It’s all relative, folks.
  4. Luck. Pure luck.

Where do I go from here?

This isn’t meant to be a full time job. And I don’t intend to monetise. It costs me about $50/month to maintain the app, and I’m happy to keep it up for as long as people want to use it.

With that in mind, I’m probably only going to spend 2-5 hours a week working on it from here on out. Unless things go crazy and I somehow get 10k users with no additional marketing (I rate my chances of that happening as 3%).

By “work”, I mean maintaining, adding to and sharing dabao.directory with people.

Speaking of sharing, I’d really appreciate if you used and shared my app too! 🙏

All in all, I’m proud of how fast I learnt to use Glide and built the app. I had no expectations going in, and am really happy with how it all worked out.

If you have any feedback for me, or would like to build your own no-code app, please reach out. I want to improve, and I’m happy to help.

Finally, I just wanted to do a quick shout out to Jeff Hager in the Glide community forum, Seth Kramer in the No Code Founders slack group and Kieran Ball for being so kind and generous with your time and knowledge. Thank you for helping a frustrated and impatient first-time Glide builder.

And thanks to Acid, Gavin, Eugene and Eileen for providing critical user feedback that made my app significantly better. And my parents for being insanely supportive by sharing it with all their friends and proactively adding new restaurant listings. I couldn’t have done it without you guys!

🍊Fresh From the Interwebz

Sure, the Velociraptors Are Still On the Loose, But That’s No Reason Not to Reopen Jurassic Park – McSweeney’s Internet Tendency

This bit of McSweeney satire made me giggle with glee. Yes, it’s a COVID-19 metaphor. Link to article →

Designing based on what looks comfortable, and not what the guidelines tell us.

A counter-intuitive design article with lots of examples on how to nudge elements out of alignment so that they look like they’re in alignment. Sometimes looks matter more than substance! Link to article →

Understanding how to hedge for volatility

I don’t know much about investing, but I found this article on hedging for volatility educational. Many funds hedge across industries and geographies, but in a global financial crisis, you quickly see how all those investments are actually inextricably linked. When one falls over, all the rest do too. Link to article →

Wealth shown to scale

A simple scrolling visualisation of the wealth of the world’s richest people. Well worth a minute of your time. Link to article →

👋 Before you go

Here are a few things you can do if you enjoyed reading this newsletter:

🍕 Become a subscriber: lesley.pizza/join

🗄 Explore past issues: lesley.pizza/newsletter

👉 Forward this newsletter to friends who might enjoy it

🌈 Get in touch/Share cool Internet stuff: cheese(at)lesley.pizza

Follow me on Twitter: @lesley_pizza