If you can't tell, I've been kind of on a PWA (Progressive Web Apps) kick the last few weeks. I want to thank NCDevCon for letting me speak on the topic which forced me to spend time learning it. I've been hearing about PWAs for a while now, and I've also sat in multiple presentations on the topic. But I have to be honest - I haven't attended many PWA talks that really made sense to me. (With the notable exception of my last two - one by Simon MacDonald and another by Tara Manicsic.) Part of the problem is that as it is my job to give presentations, it's hard sometimes to be objective when sitting in the audience. But even with that, I've really felt that a lot of the talks haven't really "sold" PWAs well. In fact, it felt like most PWA talks seem to be 99% around doing caching with service workers, and PWAs are far more than that.

I'm not even sure how I found "Building Progressive Web Apps". It was probably a random tweet. But I was incredibly impressed by the book. I can say it completely opened my eyes to what PWAs encompass and how they are built. I had felt a bit overwhelmed by the idea of learning PWAs, and even more so by the idea of actually creating one. After reading Tal Ater's well written book, I feel much more prepared to build PWAs. (And if you're a regular reader, then you can see my most recent posts as examples of this.)

While I still find PWAs to be a "big" topic, it no longer feels overwhelming, and I have Tal to thank for that.

His book covers web manifests, service workers, caching, push messages, notifications, background sync, and more. He even spends time discussing IndexedDB, which isn't necessarily a new technology (I've got a book the topic myself), but has gained new importance as PWAs have evolved.

I also appreciate the attention he spent to explaining why you would do certain things. For example, Tal goes into detail about the various caching strategies and why you would use them in your app. So you get more than just a random set of code samples. You get logical reasons for why you could actually use the code he shared. This dovetails well into the UX section at the end of the book. I love that it isn't just "how to do X" but rather "here are things to think about if you want to do X".

So if it isn't obvious, I definitely recommend the book. (Note - the link above is an affiliate link - if you purchase through that I get a few cents.) In fact, this is only the second technical book I've read that I plan on purchasing a physical copy so I can keep it by my desk for easy reference.

In case it helps convince you, here is the table of contents:

  • Introducing Progressive Web Apps
  • Your First Service Worker
  • The CacheStorage API
  • Service Worker Lifecycle and Cache Management
  • Embracing Offline-First
  • Storing Data Locally with IndexedDB
  • Ensuring Offline Functionality with Background Sync
  • Service Worker to Page Communication with Post Messages
  • Grabbing Homescreen Real Estate with Installable Web Apps
  • Reach Out with Push Notifications
  • Progressive Web App UX
  • What's Next for PWAs
  • Service Workers: A Great Opportunity to Adopt ES2015
  • Full-Page Interstitials or: How I Learned to Hate the Door Slam
  • CORS versus NO-CORS

I'd love to hear from anyone else who has read this book, and if you have others you would recommend, please share them in the comments below.