I’ve been seriously investigating Progressive Web Apps the past month, and not only is it a good idea, it is important. The next billion users to come online will be using mobile devices and those mobile devices will be overwhelmingly low-powered and on low quality mobile connections. This makes websites which work well on these mobile devices very important. Also while mobile devices are getting more powerful and connections are getting better, the flipside is that mobile devices keep getting smaller and lighter, which means smaller batteries and more aggressive power savings and mobile networks keep getting more congested as more people come online and use mobile internet for more things.
A PWA provides native-app like performance and characteristics while still being a website. Some of the goals of adopting a PWA architecture would be to reduce the time to first interactivity by 90% (i.e. on a bad connection from 20s to 2s or so) and also improve search rankings by having a site that ticks the right boxes when it comes to implementing PWA technologies, of course presumably this would also create a more pleasant experience for users, including the ability to add the site to the the front page of an Android device.
The Plan
The basic idea would be to start developing a new version of the site on next.suttacentral.net, we would use “next” because it’s not just the mobile version, it’s also the next version of the site (while it will be designed for Mobile first, the UI will also adapt a larger display)
Once that version reaches a high level of usability it would become suttacentral.net, while the existing site is moved to classic.suttacentral.net
A couple of technologies
It’s come up before, and I think it’d be a good idea to use the principles of Material Design - for the greatest part we already do but we could adhere more consistently. It would be a good way to reduce decision fatigue (instead of having to decide how to do something, it’s a matter of “material design says to this approach”) and chances are that it’s very well researched and tested to be agreeable to users, certainly since Google uses it extensively it would be familiar to users.
Material Design, being Google, may occasionally be at odds with how Apple, Facebook etc like to do things. I think the Android look & feel is the best one to emulate, but slightly different patterns might be found in an iPhone app.
There are implementations of Material Design, like the “Paper” web components by the Polymer team. There are some other implementations, like Material-UI for React, and then there are Materialize, Material Design Lite and MDC-Web which use old style HTML4 elements with classes.
At the moment I’m inclined towards Polymer because it’s the most PWA, but it’s worth noting that it’s also relatively easy to use components from collections like MDL or MDC-Web. The main downside of Polymer right now is that it is transition between 1.0 and 2.0 and the site is a bit disorganized - however the paper collection is rather stable. (Polymer does a lot of other things besides just provide collections of elements, besides helping to make your own custom elements, it also has polymer-cli for building and deploying sites).
Design and Emphasis
When SuttaCentral first began it was almost strictly about sutta parallels. I believe it is not wrong to say that the emphasis has moved much more to texts and this will only become more true when the new nikaya translations are released, I believe this has to be reflected in the new UI, that the number of clicks from home page to reading an interesting text should be reduced, and users should be guided where to click so that especially new users can quickly find something interesting to them.
One thing which is interesting to see when you look at the analytics for SuttaCentral is a lot of users end up on /pi/dn1 - and I believe it’s not because so many people are interested in /pi/dn1, but because of a mentality of clicking on the first thing you see when you don’t know what to click on (that is the top-left most link tends to draw the most attention)
Mocking around with things, it struck me, at the moment the header is:
Sutta Vinaya Abhidhamma
How much does that mean to an english speaker who is casually interested in Buddhism?
Also, realistically speaking, how interesting is vinaya and abhidhamma for the majority of users? Is it imperative that you can navigate with least possible effort from any page on the site to these? I’m not saying to relegate them to some dusty corner of the site, but questioning the prominence of these categories and their primacy in navigation, yes, it makes sense from an organizational perspective, but does it make sense from a user experience perspective?
So I’m going to ask a few questions:
- What should be in the header?
- What should be in the sidebar?
- What should be on the home page?
- What other navigational elements could be use?
Here are my thoughts
What should be on the homepage?
Things that would most likely be interesting to the average user and especially a new user:
- Top level navigation (links) - maybe
- Showcase (I’m thinking here things like the Nikaya Translations)
- What’s new
- Some kind of “reading/category/explore lists”? I think there is a comprehensibility problem with the site, if there is say some lists of texts about “Compassion”, “Mediation”, “Equality” and so on - that would be something people immediately comprehend and lets them find something they are interested in. This way people are more likely to come away with a positive feeling about the site rather than feeling it’s way above their heads.
- The intro - although if the site requires a guide to show how to use it perhaps the design isn’t very intuitive. Just saying. But still, some kind of intro/about/tour.
The material design specs indicates that the homepage should also change over time - essentially providing a simplified experience for a brand new user, providing tips and so on. This does require user login or at least recognition. It may not be for us, but it’s worth thinking about anyway.
What should be in the sidebar
In material design a sidebar is used for navigation and navigation only - navigation within the site and within the current page is fine. But controls shouldn’t be in the sidebar (controls are often in modal dialogs that drop down)
I think it could work well to have an accordion style navigation menu in the sidebar, maybe it starts as
Sutta
Vinaya
Abhidhamma
But as you navigate it updates
Sutta
Pali (English Translation)
Digha Nikaya
DN 1 - Brahmajāla Sutta
I. Talk on Wanderers
...
Chinese
Sanskrit
...
Vinaya
Abhidhamma
So this provides the ability to both navigate around the site, navigate to siblings at various levels, and navigate within the page.
The idea is then the sidebar would be usable on all pages. Perhaps for non-text views it should be visible by default on wide screens.
I believe that trying to stuff too much stuff into the sidebar is considered an anti-pattern, also it must be noted if the sidebar isn’t permanently extended then everything in it WILL be ignored by and unknown to the vast majority of users. I think it can still be acceptable as long as it’s not the primary way of finding stuff to read for new users.
What should be on the header?
Probably as little as possible.
The obvious things are the link to the homepage and the search icon. Those are very standard.
Maybe a site-settings cog. It is the standard place to put things.
What other navigational elements?
It is also possible to use “extra header” and bottom navigation. Condensing headers are popular, where you get more controls or links at the top of the page, then as you scroll down it condenses away.
Navigation pages should be strongly considered. In a PWA browsing from page to page can be very fast and back buttons are pretty good these days at returning a user to where they were before on a page so we should consider a link to another page - maybe for things like metadata.
A second header would be a good place for things like activating pali lookup and changing script. It would be nice if these things are fairly visible to make them discoverable.
Feedback welcome
Now would be a good time for anyone to provide critical feedback and ideas on how the site could be improved.