NZTechRally / nztechrally.nz

Main website for the organisation
https://nztechrally.nz
0 stars 1 forks source link

PWA features wanted? #12

Open ndorfin opened 1 year ago

ndorfin commented 1 year ago

Hi, Any interest in making the site behave in a PWA way?

Adding a Service Worker could help with offline caching / request brokering, that when used by attendees on the day would reduce the load on the provided internet access at the event (if any).

The experience on Android-compatible handsets is great. I can't speak to the iOS experience though.

praesongprasit commented 1 year ago

I've always been partial to concept of PWA, but never got to implement it for real!

The plan is to use Ghost to manage our subscribers, content, and etc. in the future.

So I'm a little bit uncertain about how well that integration with Eleventy would work in reality, especially if we're putting PWA on top of it?

Would you recommend us doing that now? Or waiting until after that Ghost integration?

ndorfin commented 1 year ago

As long as we keep the URLs consistent between the current 11ty build and the future Ghost build, then it should be straight-forward to start the PWA work now. Plus, you'll give your attendees the benefits.

I think the current 11ty structure is great for content, but if you want non-technical users to enter content, it'll be more laboursome. [I'd love if you could fill me in one day on the requirements or why you're considering something like Ghost.]

Anyway, the biggest issue I've found with previous PWA implementations is having direct control over the HTTP header responses for some of the key files needed for PWAs. e.g. The service-worker.js asset needs to be strictly uncached, which is in direct conflict with the default caching strategy for JavaScript files (1 year).

So, I think the Service Worker implementation will be the trickiest. That said, it'll be really good to start work now on your theming, icons, analytics, and site performance/experience. (I'm assuming the existing touch-icons are temporary, sorry if that's not the case!)

I'd also recommend we start looking at implementing something like Hotwire's Turbo Drive to start cleaning up the page tranisitions. It's such an elegant implementation, and will feel more app-like :)

ndorfin commented 1 year ago

I'll need to know more, here's another thought to throw into the mix…

It could be good to separate Subscriber (and other actor roles) from the Conference PWA. i.e. keep a clean separation between:

  1. an informational site / PWA experience, and
  2. a transactional Subscription / Sponsor / Ticketing / Membership app.