An inside look at how Nafas used product-led growth to build habit
A peek inside how Nafas accelerated habit formation by launching several high-impact initiatives from an onboarding journey to a launching small feature
I joined Nafas in October 2022, just a few months after getting laid off. My motivation to join then was deeply personal — A year prior, I almost lost my father to Covid. That moment felt like a turning point when I realized how important disease prevention is to our health. And so I thought, if I could align my incentive with a cause that I deeply believed in, it would be incredibly fulfilling.
Nafas felt like the right place to do that.
At that time, Nafas was tackling big challenges. As the air pollution kept getting worse and we were entering a pre-election year, driving awareness & urgency became increasingly important for public health. The stronger the urgency, the louder the public outcry, and the more pressure it would put on the government to do something about it. In this effort to drive awareness, we viewed the Nafas app as a gateway for oneself to get educated about the issue, make a habit change, and become an advocate in their own circles.
My role as Growth Manager was all about getting users hooked on our app from the get-go and keeping them engaged. The metric was clear: better weekly retention, more app opens per user, and increasing our active users.
🧨 Challenges
Lack of education about air pollution
It’s not that people don’t care about air quality. They just don’t know enough to really care.
Unfamiliarity breeds indifference, as it’s challenging to care about something you don’t know.
Out of sight, out of mind!
People tend to react to what they can see, smell, or feel. However, when it doesn't, it's easy to ignore.
Finding out to make air pollution real is critical to accelerate habit formation.
To summarize, it’s basically an onboarding and engagement problem.
Onboarding: Get new users to really care about air pollution by bridging the knowledge gap
Engagement: Get existing users to check air quality regularly by applying various tactics
😎 Applying PLG
Thinking about product-led growth starts from assigning a clear definition of what success looks like.
Engagement: We thought of engagement as a spectrum of depth. It’s not enough to measure how many people are active (width). It’s also important to measure how active they are (depth). In that case, measuring the average app launch per month per user seems like a pretty good place to start.
Onboarding: We considered onboarding as a success when the percentage of new users that still used the app after onboarding increased. In this case, cohort weekly retention rateis the best metric for this.
Retention: In first principle term, you will get good retention if you onboard new users well and keep them engaged. In other words, you can improve retention metric (weekly active users) if you improve onboarding metric (cohort weekly retention rate) and engagement metric (average app launch per month per user).
Now that we have that established, let’s dive into how we approached each of them!
Onboarding
As highlighted earlier, our primary challenge on the onboarding was the general apathy towards air quality—stemming largely from a lack of understanding. Without knowing enough, cultivating a habit around air quality becomes a steep challenge, even if we have the most sophisticated growth hacking tricks.
With that, our onboarding journey can be simplified as transfer of knowledge. We needed to figure out these things:
What content we should deliver?
Where should we deliver it?
When is the best time to deliver each of these content?
How is the order in which we should deliver it?
Since there were so many types of content and variables one needs to consider, the amount of combination to experiment with was practically endless. The tricky thing here was figuring out which variable we wanted to experiment with. We went back to the drawing board to separate which variables we thought would have outsized impact.
We decided to zero in on figuring out what to deliver and where to deliver it. This focus emerged from our belief that the right information, presented in the right medium, could significantly shift user perception and engagement with air quality issues.
Determining what content to deliver
Our first experiment centered on identifying the content that resonated most with our users. Through conversations with both users and non-users, we discovered a gap between what they knew and what they needed to know to care about air pollution. This insight led us to develop a range of content, from educational snippets about the health impacts of poor air quality to some myth-busting articles around air pollution.
Nafas' onboarding journey exploration on Figma
We tested various content types, measuring user engagement through metrics like interaction rates or retention after reading the article. Our goal was to find a sweet spot where the content was informative enough to enlighten but engaging enough to avoid information overload.
Optimizing the delivery medium
Equally important was our exploration of the most effective channels to deliver different content. We considered the user's journey within the app and how different mediums—notifications, in-app messages, banner, or even emails—could play unique roles in educating and engaging them.
We launched A/B tests to determine the impact of different mediums on user retention and engagement. For instance, did a content about tree’s impact on air pollution better pushed with native display or push notification?
By tracking the performance of each medium, we aimed to construct an onboarding pathway that not only educated but also engaged users in a manner that felt natural and non-intrusive.
Several channels we had to deliver our content
I also wanted to add that in our situation where we had countless variables & limited resource, it was impossible to be data-driven in every decision that we made. If I told you we did, I would’ve been lying. So in some situations, we had to cut corners and made decisions based on our intuition.
For example, in-app banner (2nd from the right on the image above) got us the most click out of all medium. However, the nature of in-app banner was that users only see it when they open the app. The latest industry data showed that
Therefore, if you have 4 in-app banners lined up, you better put the most important one in the first order. We had a lot of discussions about this and ultimately, we decided to go with “Do trees help with air pollution?” because it was the content that got a lot of users hooked the most from our interviews.
Engagement
Real-time notifications
Before
Throughout much of the year, we utilized notifications to deliver the daily air quality updates our users sought. Initially, our approach was to alert users only when air was polluted, as historical data indicated these alerts received higher click-through rates (CTRs) than notifications of good air quality. As for the frequency, we went with one notification a day with the intention to not bombard them.
For a while, we got pretty good result with a CTR hovering around 10-15%. However, as the year progressed, we started to see a worrying decline. As the air quality consistently hovered at lower levels, what began as a strategy to prompt urgency and alertness gradually led to user indifference and a sense of defeat. This observation led us to revisit and revise our strategy.
After
We had a brainstorming session and came up with two hypothesis that we wanted to test:
Sending a reminder when it’s good or bad are more effective in building a habit
Users are okay with more notifications, as long as it provides value for them
We ran experiments where we focused on two key variables:
Timing: We segmented the notifications into two specific time slots: morning (7-9 AM) and evening (4-6 PM), aligning with typical commuting hours. Over the weekends, we adapted the message to other activities such as morning exercises or family time.
Content variation: Sent reminders regardless of it being good or bad. This shift was significant because it fostered a more positive association with the app.
The data revealed a surprising insight: Now, notifications about good air quality significantly outperformed those about poor air quality in terms of CTR!
There was one caveat: As effective as it was, there was a natural limit on how much value we could extract from sending notifications. At one point, more optimization barely led to an uptick in engagement.
We learned that while notification proved valuable, it wasn’t a golden bullet.
We recognized that our notifications were competing for attention in a crowded space, alongside notifications from hundreds of other apps—a less-than-ideal scenario for habitual engagement.
Air quality widget
We realized that as air quality hadn't yet become a habitual concern for many, we faced the concern of users forgetting about Nafas. Not to mention that according to a survey,
turned off notifications for all apps. (I know the source was US data, but still!)
After brainstorming and getting users’ feedback, we saw air quality widget as an optimal solution to our problem for two reasons:
Widget reduces friction, which accelerate habit formation
Widget exposes users to air quality data consistently
The second point is especially important for our mission. The more often users are exposed, the more likely they associate air quality with numbers, not just by sensing it with their nose or naked eye. This directly addresses one of the two challenges I mentioned earlier, which is air pollution being an “Out of sight, Out of mind” topic.
— None of these would’ve been possible without Piotr’s guidance and his constant inputs during the process. One thing I really loved about Piotr was that he was okay with giving me room to explore and make mistakes.
— My right-hand man 👊 Danny was always there helping me with whatever needed to see things through. Be it connecting us with customers, working with designers and engineers, or taking over when needed, Danny always showed great proactiveness. He also had high eagerness to learn, which quickly made him into a valuable asset for the company.
— As the mobile engineer, Natasha was responsible for bringing our product ideas to reality. 3 words to describe her: Reliable, responsive, and proactive. I always felt like I could trust Natasha since day one.
— We took pride in only pushing high-quality content, and it was only possible because we had a great design talent. Since I first arrived, Randy made my life easier by his ability to translate my vision into a concise-yet-beautiful designs.
— Shafli’s design skill is obviously great. But IMO, I was really impressed by his ability to quickly understand new context as a part-timer. Not only did that allow him to produce great design in the first try, he also often provided solid input to improve the overall product experience of Nafas.
🙏 Final words
Thank you for taking the time to read this case study! I hope you found the insights and strategies we implemented both informative and inspiring.
Explore more
If you're keen on reading my other works, I also wrote about 4 growth learnings from my time growing CoLearn’s user base from 0 to 4 million users: