November 2022 🦃 - New PWA & Tech Debt Burn-down 🔥

November 2022 🦃 - New PWA & Tech Debt Burn-down 🔥

Growth & Metrics

This month I've gone from 199 users signed up to 216 users at the end of this month. More on this at the bottom of the post...

However, the install rates across iOS & Android continue to be rather healthy in the ballpark of 800 installs a month. I'm quite happy with this considering how competitive the app stores are & how little I'm spending on advertisements.


Here's the breakdown for the performance of the existing ads I have running presently.

What's New?

November has been very busy burning the midnight oil burning down existing bugs & technical debt. Along with that, I've managed to add a few exciting new features 😄

Open Graph Link Previews

Hubs & Events now populate Open Graph details on shareable links. This helps facilitate users in advertising their communities and events to their friends & colleagues.

PWA (Progressive Web App)

Installable Progressive Web App version of the Lazztech Hub app is now available on all major browsers at This means that the app is now available on all major platforms, iOS, Android, and Web. Also as an installable app via the PWA on Mac, Windows, & Linux.

To install it as a desktop app select this prompt in chrome.

Technical debt burn-down 🔥

All images are now served in WebP format (where applicable) instead of png or jpeg. This resulted in some pleasant reduction in bandwidth & latency in loading images & avatars. Below is a before and after example to demonstrate the file size reduction from the usage of WebP.

Additionally, Cache-Control headers have also been configured for static file serving which should additionally help to reduce latency when loading images.

avatar at 22.3kB in png format
the same avatar at 4.0kB in webp format

Backend Improvements List

OpenTelemetry distributed tracing has been set up on the backend & frontend to get insights into how the system as a whole is performing.

Also, further work on dataloaders for graphql perf resulted in significant latency improvements on requests to the backend from the app. I'm now seeing an average of about 150ms to 250ms which I'm very pleased with. This overall results in a further snappier user experience when using the app.

Frontend Improvement Notes


  • ✅ fixed oval image on hub invite preview
  • ✅ Broken hub invite preview page - no error handling “TypeError: null is not an object (evaluating 'e.lcZ(1,2,t.invite).hub')”


  • ✅ No unit tests on frontend


  • ✅ Need non webp image file for open graph image, should also include watermark


  • ✅ Flex grid layout messing with padding
  • ✅ Outdated dependencies


  • ✅ Redirect back to page after login
  • ✅ Missing route guards


  • ✅ No polling on the people page
  • ✅ No search on home page & events page
  • ✅ Disabled swipeGesture on split-pane menu


  • ✅ Shouldn’t be sending images as base64
  • ✅ Should be using webp format for images
  • ✅ Image edit flow on Android is troublesome
  • ✅ Lack of error handling


  • ✅ TypeError: e.oxw(2).onMapLoading is not a function.
  • ✅ Non-working loading bars
  • ✅ Fix sort order for upcoming events
  • ✅ Remove the click handler from the entire hub card that opens the map page


  • ✅ No generated open graph previews for shareable content like hubs & events


  • ✅ No open graph preview for shareable links
  • ✅ Released PWA
  • ✅ Got off no longer free netlify


  • ✅ Avatars should be webp format
  • ✅ No caching headers on generated avatars
  • ✅ No caching headers on user uploads


  • ✅ Inefficient foreground geofence service
  • ✅ Broken hub edit pages from polling
  • ✅ Efficient cleanup of query polling on ionViewDidLeave so that only relevant data is polled while it’s being viewed
  • ✅ Text overflow for “Your Hubs” & “Your Events” lists
  • ✅ Map not working on events


  • ✅ No error handling on login
  • ✅ Header color wrong in light mode
  • ✅ Save button always on map page…
  • ✅ Users were bombarded with permission requests on the initial launch
  • ✅ Oval profile images…
  • ✅ Event RSVP too easy to bump, should be drop-down instead of the selection group
  • ✅ Users stuck on tutorial because they don’t realize it’s slides, need next button

What's Next?

Only about 2.5% of users that install the iOS or Android app actually complete the user sign-up.

This means that out of the hundreds of installs the app is getting a month, 97.5% of new users drop off when confronted with a signup/registration page...

I see this as the most important challenge to overcome for this app. A quick search shows some tips for handling this. Of the easiest ways to reduce signup/registration friction is autofill on the registration fields. I'll start there and then investigate an expedited guest login & or 3rd party sign-in.

Below are some resources I've found presently in investigating solutions to poor install to signup conversion.

Do you really require users to login/signup for using your app? 🤔
Most of the apps that you would come across force you to login for checking out the app. Then there are some who give a small skip option…
How to grow new user sign-ups on Android
In this article you will learn how Lyft managed to grow new user sign-ups on Android. I’ll walk you through various new-user acquisition…
Gradual engagement: Why your mobile app’s first screen should not be a signup | Appcues Blog
A mobile app’s first screen should make new users feel welcome and demonstrate your app’s value, not scare users off by forcing them to register for an account. Here, we explain how to use gradual engagement for mobile onboarding to increase retention, boost meaningful conversions, and improve UX.
Autofill Credentials | Capacitor Documentation
Automatically fill credentials