Team Management
Development of web application
00.-
Description
Blogalyzer is a data-rich analytics software that aims to be as intuitive and fast as possible. I needed to handle about 1GB of JSON data per user, updated every day. At the same time, I wanted users to be able to start using the product immediately.
01.-
Why?
Problem
Moving to a more powerful technology
Blogalyzer Google Sheets Add-On had a lot of interest from users, but the User Interface was very limiting - only a sidebar - and the technical limitations of Google Apps Script made it impossible to handle hundreds of clients at the same time. (Read about it here)
The complex algorithm
An important challenge of the project was to have an algorithm that could download the full history of a user’s Google Analytics data, while working around the API’s limitations: timeouts, unexpected bugs when requiring more than 100.000 rows, bugs when requiring different metrics for a timeframe older than 2 years, and so on. The data downloaded often amounted to about 1 gigabyte of JSON and this had to be done async in order to prevent huge waiting times.
The choice of moving to a self-hosted web application was evident. Now I needed to select the right technology, the architecture & the cloud hosting.
02.-
Approach
First steps
Picking the right technology, architecture & hosting
I needed someone with advanced dev ops experience in order to build a scalable SaaS. The first step was to build a cofounder oriented pitch deck, an order book and to reach out to my network for initial talks. I also reached out to experienced developers to consult me on the architecture of the application.
Finding a back-end developer
Finding a skilled technical co-founder is not easy. He or she needs to LOVE the project, have time, have savings, and you need to find them. I decided to start paying a salary first and see if we'd get along. I worked with 2 developers before finding a first co-founder. Luckily, I had a network of tech-savvy people thanks to leWagon, Dojo coworking Bali and from working in startups before.
03.-
Challenges
Technology
Google Cloud, NodeJs & React
We decided to host our application in the Google Cloud environment, as it integrated well with the Firebase authentication and noSQL database that was already in place, as well as an easy connection with the Google API’s (Analytics, Search Console,...) that we consumed. We later changed the database to mySQL and used a lot of Google’s hosted services like App Engine, Cloud Tasks, Pub/Sub, Storage… The codebase for the back-end was in NodeJs, while the front-end used React.
Python & Wordpress Plugin (PHP)
Another part of the application, the automatic weekly email reports were developed in Python by a consultant who also created our wordpress Plugin. This plugin integrates our customised version of an open source analytics software. The reasoning behind it, is to diminsih our important dependency towards Google’s API’s.
Segment, Intercom, Sendgrid, BigQuery,...
Last, a lot of integrations were added to allow the marketers to be independent from the development team. User interactions within the app are tracked, stored and customer support, feedback, transactional emails are fully automated.
04.-
Result
Fast & Bug-free
Fighting bugs becomes a hobby
I worked very closely with the back- and front-end developers. During the project, the team lead / CTO changed 2 times and I had to hand over the codebase as well as the logic of the algorithms and the related challenges. In order to discover and eliminate bugs, we had to dive (really, really) deep in the Google Analytics API and communicate with the Google team a lot. Oh, and before I forget, another thing we had to do was test, test, test, test and test again.
Huge dashboards under 2 minutes
Constant optimisation of our algorithm and front-end system, allows us to deliver results to our users within minutes, while keeping cloud processing costs low. It is faster than we expected when we started this project.
Click here to try Blogalyzer