Superior mobile app debugging and bug reporting—built by developers, for developers

Shake is DECODE’s sister company. It enables mobile app developers and QA teams all around the world to ship high-quality apps, helping them to understand app behavior in the real world and providing brilliantly structured bug and crash reports so that they can make their applications work better.

Mobile bug reporting tool & platform

Short summary

Industry

Computer Software

Location

Croatia/USA

Timeline

2+ years

Our internally developed mobile app debugging SDK & platform.

The challenge

At DECODE, we’ve always managed to use our time effectively thanks to our streamlined delivery process. But the average developer spends as much as 70% of their work time looking into software bugs and crashes. We decided we’d try to distill our process into a spin-off software company that our fellow app developers could benefit from. Shake helps developers so they can always know the cause of a bug.


The solution

For Shake, we delivered the first SDKs for iOS and Android, complete with a powerful dashboard with plenty of features like screen recording, detailed app telemetry, crash reporting and 3rd party integrations like connection to Jira, Asana, and Azure DevOps.

With Shake SDK, every bug report is automatically perfect. Whenever users notice a bug, they just shake their phone to report it, without ever having to leave the app.

Shake02
Shake03

Outcome

Web dashboard

From the dashboard, users can manage their Shake account, add team members, change their pricing plan, and view all reported bugs and crashes. It’s interactive too—users can scan all previous events and contact reporters for more info.

Backend solution

Hosted on Amazon Web Services, Shake’s backend is robust and fully scalable. Its main job is to collate all the bug and crash reports from Shake users, before rendering them ready to be viewed on the web dashboard.

SDK for iOS, Android, Flutter and ReactNative

Libraries for mobile developers which can easily be integrated into their own app. Once a tester or a user submits a bug report, Shake records every last detail of it, to help developers fix that bug more efficiently.

Mobile Mockup
Shake05
Shake web dashboard

Leading edge capabilities

Works seamlessly offline

Users can report bugs using Shake even without an active internet connection. Its ability to capture bugs when offline provides users even more insight into how their apps behave.

Screen recording

A screenshot of a bug report is good. A video of the events before the report is even better. This feature works efficiently and reliably across all mobile platforms.

Scalable & robust with efficient architectural design

Shake plays nicely with all sorts of different apps. We wanted it to be energy efficient as well as robust, with a small memory footprint and low CPU usage.

Shake features
Dashboard of shakebugs
shakebugs image

An intricate tech stack

Bitbucket for testing and quality

Shake stores code on Bitbucket, and uses Bitbucket pipelines to run tests and trigger code quality checks.

Pytest & Behave for test automation

For backend test automation, Shake uses two types of tests: Pytest framework is used for unit tests, while Behave framework is used for Behavior Driven Development (BDD) tests.

Fully hosted on Amazon Web Service (AWS)

With end-to-end automation being front of mind, the entirety of Shake’s infrastructure is run in AWS cloud.

Terraform for infrastructure as code

Shake’s whole infrastructure is described with Terraform. This enables them to quickly and methodically change existing environments, or create new ones.

Detailed real-time data visualization

Prometheus is used to generate monitoring data from Shake’s servers, while Grafana collates into a detailed visualization.

Large-scale code logging and error tracking

Shake uses Sentry to track errors in both backend and frontend code. These are then captured and stored using Graylog, allowing for centralized, real-time analysis of huge machine data volumes.

Image UI
1x iOS Full v2
shakebugs reporting tool

Elasticsearch as advanced search engine

Elasticsearch is a document-oriented search engine. All actions are performed using a REST API, and all data is stored as human-readable JSON documents, making them perfectly compatible with web applications.

App-powered customer feedback

Using Canny, Shake’s customers can offer feedback to the product team, and vote on the proposals of other product ideas and feature requests. This means the Shake team is always working on what customers really want.

Fullstory for precise UI analytics

FullStory provides detailed insight on product experience and identifies problem areas. Shake uses this intel to make the right changes, then track and measure their business impact.

A cohesive network of 3rd party tools

Shake uses Segment to manually and seamlessly integrate every tool into their codebase. Integrating a new tool only takes the touch of a button.

Docusaurus for online documentation

With Docusaurus, the Shake team can easily update online documentation and help their customers with precise instructions and best practices for product use.

Stripe for seamless secure payments

Shake uses Stripe payment infrastructure to offer their customers simple, easy-to-use subscription-based pricing.

We had DECODE developers by our side from day one. They understood our position and gave extra effort to highlight every possible weak point and soft spot of the product.
Anđelo Kandić
Tech lead at Shake →

More case studies