Instagram Lite Is No Longer a Progressive Web App — Now a Native App Built with Bloks
Instagram Lite, a version of the Instagram app that weighs only 2MB — compared to 30MB for the full iOS and Android apps — was relaunched on Android earlier this month. Curiously, Instagram decided to ditch the previous Progressive Web App (PWA) version of Instagram Lite and re-build it as an Android app using an internal framework called Bloks. In other words, Instagram Lite is no longer a web app.
So why did Instagram — and by extension its parent company Facebook — decide to drop support for an emerging web standard (PWAs) and switch back to a native app?
We currently know little about the custom framework called Bloks. According to a report in TechCrunch, Bloks moves most of Instagram Lite’s application logic to the server-side and renders it as a native application. Jane Manchun Wong, a reverse engineering blogger, compared this “to how React Server Components works.” She noted that the app “is native and has its own engine that accepts and renders the artifacts of the layout and content sent from the server side in their own custom format (not HTML nor JS).”
Bloks is most likely a continuation of earlier lightweight framework projects that Facebook has done. Project LightSpeed is a recent example — it was announced last year as a way to “make Messenger’s iOS app faster, smaller, and simpler.” LightSpeed is an internal tool, but a number of Facebook’s development projects over the years have been open sourced — for example, Litho, a declarative UI framework for Android. Litho uses “the React declarative model and the Yoga layout system,” two other Facebook open source projects.
So there’s a rich history within Facebook of developer-focused projects, some of which are open source and some (like Bloks) that are a black box to the outside world. What I find most interesting though is Facebook’s continued flirtation with web standards, which it never quite consummates. Instagram Lite was a PWA for a few years, but now suddenly it’s a native app again.
Of course, Facebook is big enough to create its own tech stack and maintain it. One of the advantages of this is that Facebook is not beholden to browser vendors implementing the features it wants. This not only gives Facebook flexibility and control over its development pipeline, it also allows the company to move fast on new product features (although it tries not to “break things” anymore).
Notably, Facebook is not part of the WHATWG group that creates and maintains web standards in coordination with the World Wide Web Consortium (W3C). WHATWG is run by the leading browser vendors: Apple, Google, Mozilla and Microsoft. That may partly explain why Instagram Lite veered away from PWA technology.
However, Instagram itself has had a more varied history with web browser support, going all the way back to its beginnings in 2010.
Instagram’s History with Web Standards
Before it turned into a photo sharing app for iOS in late 2010, Instagram’s founders had created an HTML5 mobile website called Burbn. It was a location-based social network, a popular Web 2.0 category at the time. Kevin Systrom and Mike Krieger presented Burbn at a conference that my previous company, ReadWriteWeb, put on in Mountain View in May 2010. In my keynote address for that event, I referenced Burbn as an exemplar of the emerging (I thought at the time) mobile web.
Well, we all know the history from there: the mobile web soon gave way to native apps from iOS and Android, which took all the wind out of HTML5’s sails. After its launch in October 2010, Instagram became a viral sensation before selling to Facebook for a cool billion in April 2012 (the same month it released an Android app).
Instagram was one of the first major online products designed to be used exclusively on your smartphone — as a native app — rather than on desktop computers. At the time Facebook acquired Instagram, it had very limited functionality in a web browser. While that improved over time, it took until February 2019 for the browser version of Instagram to get messaging capabilities (as one example).
But Instagram, to its credit, also noticed that mobile browsers had gotten much better since the Burbn days of early 2010. The mobile web was getting the wind back in its sails, thanks to much-improved support for both PWAs and HTML5 in web browsers. So in 2018, following the lead of early PWAs like Twitter Lite, Instagram chose to launch its own PWA Lite version.
When it was launched in June 2018, the PWA Instagram Lite was just 573 kilobytes (roughly a quarter of the size of the new Android version of Lite, launched this month). At the time, Instagram Lite was being pitched to “mobile users in the developing world who are often on older phones with less storage space, slower network connections or who can’t afford big data packages.” The messaging hasn’t changed with the new Lite app — just the technology. The PWA version disappeared last year and only now have we seen its official replacement.
From the little we know currently about Bloks, the framework that the new Android Instagram Lite was built on, Facebook views it as an upgrade over the functionality offered in the PWA version. Tzach Hadar, director of product management for Facebook’s Lite apps, told TechCrunch that Bloks is “much more performant and has more features and capabilities.”
It remains to be seen whether Facebook will continue developing its Lite apps in this manner, as native apps with the application logic server-side. Or indeed, whether the Bloks framework will be open sourced. It may turn out to be a viable alternative to PWAs, at least for the developing world.