Prioritizing users in a crisis
Creating a fast and accessible pandemic response site
https://covid19.ca.gov
Accessibility is legally required for good reasons
Some alpha.CA.Gov design principles
- Start with user needs
- Iterate — then iterate again
- Make it accessible and inclusive
- Make things open: It makes things better
- Optimize performance
Alpha team formed 12/2019
Built 17 new services on alpha.ca.gov
![Screenshot of tap water quality checking tool](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7578562/Screen_Shot_2020-07-22_at_7.12.10_PM.png)
![Screenshot of find food banks near you tool](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7578696/Screen_Shot_2020-07-22_at_9.12.23_PM.png)
Stood up V1 covid19.ca.gov in 4 days
![screenshot of old version of covid19.ca.gov homepage](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7578565/Screen_Shot_2020-07-22_at_7.16.37_PM.png)
![screenshot of current version of covid19.ca.gov homepage](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7578567/Screen_Shot_2020-07-22_at_7.13.12_PM.png)
![19,238 commits on github](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7579827/Screen_Shot_2020-07-23_at_5.09.50_AM.png)
Still iterating
Immediate traffic spikes
![100,098 active visitors right now](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7578555/Screen_Shot_2020-07-22_at_7.02.15_PM.png)
Ongoing need
![20 million user sessions](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7578553/Screen_Shot_2020-07-22_at_6.44.20_PM.png)
Fast, accessible, readable
- Loads in 2 seconds on 3G with a Moto G4
- Grade 9 or lower Automated Readability Index
- Lighthouse Performance, Accessibility scores: 100
![Lighthouse scores showing 100 across the board](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7578224/Screen_Shot_2020-07-22_at_2.58.37_PM.png)
Human Translations
![Language pulldown screenshot showing 7 language options](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7580477/Screen_Shot_2020-07-23_at_8.38.59_AM.png)
Open source
static site generator
![11ty logo](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7578506/Screen_Shot_2020-07-22_at_6.32.23_PM.png)
Static Site generation in practice
- Reliable
- Scales smoothly
- Lower cloud costs
- Less infrastructure to manage
- You can use them without sacrificing anything
- We retain the convenience of WordPress by using it headlessly for authoring, regenerating the static artifact each update
- We use web components and FAAS APIs for realtime interactive widgets
The 11ty community
![Description of the fabulous performance scores in the 11ty community](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7580851/Screen_Shot_2020-07-23_at_11.08.32_AM.png)
Fast on my machine
Why so dramatic about performance?
Performance is an equity issue
- Data transfer costs people money
- Devices with less capable CPUs take a lot longer to parse javascript even after it is downloaded so some users are staring at a white screen forever waiting for your single page app to work
- > 9% of Californians are accessing the internet on 3G
- Unlimited data plans throttle users at bandwidth caps
- Conditions vary for everybody, I used to commute on BART and parts of that journey I really appreciated sites that made an effort to be fast
Performance is good for the bottom line
- Speed is a search ranking factor
- Speed increases user satisfaction
- Speed impacts conversion levels
Solutions
- Bake performance, a11y and readability into your processes so you are aware of tradeoffs
- Make temporary compromises when necessary but treat them as bugs
- Challenge your team to increase lighthouse scores. Putting up points is fun!
- Run audits on code changes
- Set performance budgets in your build tools
- Run audits regularly against production
- Keep measurement history for review
Tools
YES!
There is a conspiracy to make your site slow
Forces at work
- The constant need for more features immediately
- Surveillance
- You can recreate a user session video by watching every cursor move and keypress in javascript. These things are costly, use them sparingly if they are helpful.
- Careless install instructions
- Does this large script really need to be added in a render blocking manner?
- The developers
- Yes, I am part of the problem too, always trying to find a way to fit in some cool 3D dataviz
Don't slow down
- Know your audience
- Keep measuring and raise your team's awareness of the results
- Cover the basics then do dope stuff
Readability
- Reduce cognitive load
- Increase effectiveness
- Include all literacy levels
Tools
- hemingwayapp.com: realtime hints
- npm: unfluff & readability-scores
Experiment warning
![screenshot of cagov.github.io/leaderboard showing many sites](https://s3.amazonaws.com/media-p.slid.es/uploads/44897/images/7580540/leader-snap.jpg)
We're hiring
More info
- Github: http://github.com/cagov
- The CA.Gov Alpha team: @cadotgov
- Aaron Hans: @nopatternaaron
- https://news.alpha.ca.gov/prioritizing-users-in-a-crisis-building-covid19-ca-gov/
Prioritizing users in a crisis
By Aaron Hans
Prioritizing users in a crisis
Creating a fast and accessible pandemic response site covid19.ca.gov
- 343