Case Study — Beelinguapp
How Beelinguapp flipped the script on mobile observability with bitdrift
The language learning app went from slow, limited scope, user complaint driven observability to complete 360 views of what was going on in their app. With bitdrift, they’re catching and fixing bugs 2-3x faster and building better, more consistent user experiences.
The popular language learning app Beelinguapp was launched in 2016 by David Montiel to offer a unique and engaging way to learn new languages. In the time since its launch, the app has been downloaded over 7 million times, and currently boasts more than 200,000 monthly active users on Android, iPhone, and online at beelinguapp.com.
The problem: limited observability, slow cycles
Before bitdrift, Beelinguapp’s backend team was entirely dependent on user complaints to alert them to bugs. If nobody wrote in about it, and an engineer didn’t catch it locally, nobody knew about it. Not only did that provide Beelinguapp with little to no observability, but following up was often slow and laborious – asking the user to describe the issue in detail, requesting screenshots or videos for clarification, then trying to debug based on the information provided.
As an example, soon before Beelinguapp started working with bitdrift, a few of the app's guest users began mistakenly receiving access to premium accounts, and some premium account users lost access to premium benefits as a result. Prior to implementing Capture, that meant a long back-and-forth with frustrated users, asking a series of questions to try to pin down what might have triggered the issue. Instead of immediately finding the bug, investigating what caused it, and shipping out a fix, there were several intermediate steps required to even nail down what was going wrong.
bitdrift gave Beelinguapp unprecedented observability across every device
With bitdrift, Beelinguapp was able to go from user complaint driven bug fixes to complete, 360 degree views into everything happening in their fleet. Instead of reactive back and forths with users to find bugs well after they had impacted the user experience, bitdrift enabled them to comprehensively log what is actually happening under the hood.
Back to the premium accounts bug example: when Beelinguapp began using bitdrift Capture, David was quickly able to determine that under specific and rare circumstances, guest users' cookies were saved and never overwritten, triggering the issue. Using Capture, he simply added the session ID to all logs, and almost immediately found that some user IDs and session IDs didn't match, thanks to Capture’s real time observability.
"The issue was extremely hard to find – I would never have found it without bitdrift," David says.
Using Funnel to Optimize the User Experience
Beelinguapp has also benefited extensively from bitdrift's Funnel feature, which makes it easy to analyze data and monitor user behavior with multi-stage funnels. One of the first ways David used the feature was to improve the onboarding experience – immediately after onboarding, users are offered a suggested story that's tailored to their chosen language and experience level. David used a funnel to monitor and optimize the way that story is presented, evaluating user behavior and conversion rates in real time at every step of the process.
The funnel quickly showed David exactly what percentage of users see the dialog box offering the suggested story, what percentage click on "Read Story," what percentage then actually read the story, and what percentage of users finish it. At each step, the data helped David optimize the offering – the funnel's determination that only 92 percent of users saw the dialog box offering the story, for example, prompted David to check for issues that might be blocking the user's view within the app.
In the end, the improved process increased the number of stories that users finished reading by 24 percent. "We learned that users are very, very persuaded by the fact that we suggest the story immediately after onboarding – and I was only able to see that because of the funnel," David says.
What's more, now that the funnel workflow is deployed, it continues to provide detailed, real-time data on conversion rates without requiring any additional time or effort.
Reduced Costs and Rapid Fixes
David says bitdrift has also significantly reduced Beelinguapp's Firebase Realtime Database costs, simply by alerting him whenever the payload of a given request exceeds a threshold. "Using bitdrift, I was able to see which calls were firing one megabyte, then to fix the database structure in Firebase to make the costs more efficient," he said. "Without bitdrift, we wouldn't have been able to do that."
More broadly, David says bitdrift has transformed the speed and clarity with which he can respond to every issue as it comes up. "I'm pretty confident I would be able to fix almost any bug now," he said. "Now that I have this tool, I know that I will be able to root-cause bugs either in the same release, or if not, I can just add a couple of logs and that will give me the information that I need, in seconds. That's the biggest change we've experienced."
It's either a matter of checking the logs in bitdrift and then fixing the issue in the next release – or, if the issue impacts an object not currently being logged, all that's required is to add a new log to the next release, then fix the code in the release that follows. Either way, the process is quick and straightforward, and nothing is left unaddressed.
And because it's free to add telemetry in bitdrift, those additional logs carry no extra cost. That empowers David to log a volume of activity that would have been prohibitively expensive to monitor in the past – and to do so with much more clarity than he could using other solutions, like Crashlytics, that are limited to logging crashes.
"I definitely log much more now, because I know that if something goes wrong, I'm going to be able to debug in real time because of bitdrift," David says.
Ready to get started?
Get a demo.