I've spent the last two weeks experimenting with new technologies to improve the user experience on my digital products.
I started with a static file generator called GatsbyJS. I implemented a text editor with Markdown capabilities with a local auto-save feature.
Then I built a toy app using a micro-service architecture: Gatsby on the front-end, a Symfony API on the back, an auth0 integration with JSON Web Tokens, and cross-domain requests.
I'm now building a progressive web app using local storage. It works offline, it's fast, and it doesn't cost anything to host. What's more, it can be installed as an app on mobile AND on the desktop while still being accessible on the web, and the data can be fetched from any uniform resource identifier.
I'm utterly fascinated by the concept. As a teenager, the Internet appeared to me as the land of opportunities. I could build something out of thin air and make it accessible to everyone online in a few clicks. I didn't have a phone and desktop software looked hard to build, so I settled for web development. The shift between mobile, desktop, and web seemed impossible to disentangle.
Fast forward 2019 and progressive web apps allow developers to build cross-platform software that works everywhere. It's the convergence of every developer's dream.
It's still a relatively new technology. Chrome made it possible to install progressive web apps since October 2018. Firefox started supporting PWA installs on mobile last month but it's still not supported on desktop. However, both browsers support offline navigation so it's still possible to make your website available even when the network is down.
Even though the support is still limited, migrating any website to a PWA makes it way more performant thanks to the combination of caching and local storage.
I'm looking forward to releasing my first progressive web app and I don't plan to go back to the way I used to design digital products any time soon. The future is almost there.