Professional Documents
Culture Documents
State of Web - Making The Web On AFIRE
State of Web - Making The Web On AFIRE
10 (10)
http://bit.ly/tjmonsi-state-of-web-ioextended
20 (5)
Web
21 (5)
Web
We need it to be Accessible, Fast, Integrated, Reliable, and
Engaging
30 (5)
AFIRE
Accessible, Fast, Integrated, Reliable, and Engaging
40 (5)
Reasons
45 (3)
Mobile Usage
47 (2)
34.44%
Expected number of smartphone users in the Philippines as
of 2018
https://www.statista.com/statistics/467186/forecast-of-smartphone-users-in-the-philippines/
1:00 (5)
8 in 10
People would stop engaging if site doesn’t show well on
their device
https://www.ironpaper.com/webintel/articles/web-design-statistics-2017/
1:05 (5)
1:15 (3)
Internet Speed
1:20 (5)
https://twitter.com/tjmonsi/status/930969251007029248?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Fcodeburst.io%2Fmedia
%2Fce14f308c51cc08a7bda8ffa1273ae66%3FpostId%3Dbcc1452a8c6a
1:45 (10)
1:50 (5)
1:55 (5)
80%
Percentage of Philippine mobile users that subscribed to
lower tiered speed (about 1 - 3 Mbps)
https://www.rappler.com/brandrap/profile-internet-users-ph
2:10 (5)
3.4 sec
Transmit a 170 KB gzipped JS file through a 3G network
https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/javascript-startup-optimization
2:15 (5)
20%
Bounce rate on 3.3 seconds wait time
https://www.ironpaper.com/webintel/articles/web-design-statistics-2017/
2:20 (5)
Mobile Phone Speed
2:37 (2)
82.47%
Android users in Philippines
http://gs.statcounter.com/os-market-share/mobile/philippines/2016
2:50 (5)
https://www.appbrain.com/stats/top-android-phones-tablets-by-country?country=ph
3:00 (10)
2 GB
Max RAM space of top 3 Android phones used in the
Philippines
3:05 (5)
2 sec
To parse a 170KB gzipped JS file based on the processor
used by the top 3 used phones in the Philippines
https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/javascript-startup-optimization
3:10 (5)
1.5 sec
To execute a 170KB gzipped JS file after parsing based on
the processor used by the top 3 used phones in the
Philippines
https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/javascript-startup-optimization
3:15 (5)
7 sec
To load, parse, execute a 170KB gzipped JS file after
parsing based on the processor used by the top 3 used
phones in the Philippines on a normal 3G internet
connection speed in the Philippines
https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/javascript-startup-optimization
3:25 (5)
Site complexity
3:30 (3)
https://www.soasta.com/blog/page-bloat-average-web-page-2-mb/
3:40 (10)
351 KB
Average Javascript size transferred over the wire from all
websites in 1 year
https://httparchive.org/reports/page-weight#bytesJs
19
Average number of requests per site visit from all websites
for 1 year
https://httparchive.org/reports/page-weight#bytesJs
Security
3:55 (3)
32%
Of all website visits using Chrome and in Windows are still
in HTTP
https://security.googleblog.com/2018/02/a-secure-web-is-here-to-stay.html
4:00 (5)
76.6%
Uses at least one vulnerable Javascript library
https://snyk.io/blog/77-percent-of-sites-use-vulnerable-js-libraries/
4:05 (5)
79.4%
Of the 77% of sites uses jQuery 1.x, a vulnerable library to
Cross Site Scripting Attacks
https://snyk.io/blog/77-percent-of-sites-use-vulnerable-js-libraries/
4:10 (5)
Accessibility
4:15 (3)
70%
Increase of Mobile screen reader usage worldwide from
2009 to 2014
https://webaim.org/projects/screenreadersurvey5/
4:20 (5)
Meeting the user needs
4:30 (5)
4:55 (15)
5:00 (5)
But...
5:02 (2)
But...
We actually only need to know these...
5:05 (3)
5:07 (2)
5:09 (2)
5:11 (2)
5:13 (2)
5:20 (7)
UX
Delivering the best user experience to your clients...
5:30 (10)
Best Practices in
Developing a Website
5:35 (5)
Making it Accessible
5:40 (5)
Accessible
5:45 (5)
Accessible
<header></header>
<main role=”main”></main>
<aside></aside>
<footer></footer>
5:47 (2)
Accessible
<blockquote></blockquote>
<q></q>
<em></em>
<strong></strong>
<figure></figure>
<figcaption></figcaption>
<picture></picture>
5:49 (2)
Accessible
<table></table>
<caption></caption>
<thead></thead>
<tbody></tbody>
<tfoot></tfoot>
<tr></tr>
<th></th>
<td></td>
5:57 (2)
Accessible
<form></form>
<input>
<label>
<button></select>
<select></select>
<option></option>
<optgroup></optgroup>
6:00 (3)
Accessible
Rule of thumb:
- If it means a certain tag, use it
- Use div only when you want to group a
set of items without meaning
- Use span sparingly…
- Don’t misuse the tags
https://developers.google.com/web/fundamentals/accessibility/semantics-builtin/
6:05 (5)
Accessible
6:10 (3)
Accessible
6:12 (2)
Accessible
6:15 (3)
Accessible
6:17 (2)
Accessible
http://bit.ly/tjmonsi-html-back-to-basics
6:20 (3)
Making it Fast
6:22 (2)
Fast
6:25 (3)
Fast
6:30 (5)
Fast
6:35 (5)
Fast
Rule of thumb:
- Do an inventory of critical assets
- Don’t use CSS frameworks out of the box (like
Bootstrap, or Foundation) on Production
- Understand Frameworks you use so that you
only load what you need
- Code split of the win
6:40 (5)
Fast
6:47 (2)
Fast
6:52 (5)
Fast
https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/eliminate-downloads
6:50 (3)
Fast
Rule of thumb:
- HTML
- 1 Core JS (and if SPA, page JS)
- Worker JS (optional)
- Render content
https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/eliminate-downloads
6:55 (5)
Fast
7:07 (10)
Fast
7:12 (2)
Fast
7:15 (3)
Fast
Rule of thumb:
- Show the Damn Content Quickly!!!
7:45 (5)
Fast
7:47 (2)
Fast
https://medium.com/dev-channel/the-cost-of-javascript-84009f51e99e
7:52 (5)
Fast
https://infrequently.org/2017/10/can-you-afford-it-real-world-web-performance-budgets/
8:00 (8)
Fast
Rule of thumb:
- Allow the system to interact with the
user ASAP!!!
8:05 (5)
Fast
8:07 (2)
Fast
8:10 (3)
Fast
8:12 (2)
Fast
8:25 (2)
Fast
8:30 (3)
Fast
Rule of thumb:
- Function calls should be less than 6 ms
(for the win)
- If not less than 12ms
8:35 (5)
Fast
8:37 (2)
Fast
8:40 (3)
Fast
Rule of thumb
- Use main thread for DOM
manipulation and UI executions
- Use web worker for other things
8:45 (5)
Fast
8:47 (2)
Fast
8:50 (3)
Fast
https://daneden.github.io/animate.css/
8:55 (3)
Fast
http://rachelnabors.com/css-animations-cou
rse/
8:57 (2)
Fast
PRPL Pattern
9:15 (3)
Fast
PRPL Pattern
9:25 (10)
Fast
PRPL Pattern
9:30 (3)
Making it
Integrated
9:32 (2)
Integrated
Integrated
Create a Manifest
9:35 (3)
Integrated
Create a Manifest
{
"name":"Name of Site",
"short_name":"Short name",
"start_url":"/",
"background_color":"#5b73fd",
"display":"standalone",
"orientation":"any",
"scope":"/",
"theme_color":"#5b73fd",
"icons": [...]
}
9:40 (5)
Integrated
Create a Manifest
9:42 (2)
Making it Reliable
9:45 (3)
Reliable
Reliable
Use HTTPS
9:47 (2)
Reliable
Use HTTPS
9:52 (5)
Reliable
Use HTTPS
9:57 (5)
Reliable
Use HTTPS
10:02 (5)
Reliable
Use HTTPS
Let’s encrypt:
https://letsencrypt.org/
10:07 (5)
Reliable
Use HTTPS
Rule of Thumb
- Use hosting sites that already give
HTTPS by default
- Use Let’s encrypt and open port 443
10:12 (5)
Reliable
Reliable
10:15 (3)
Reliable
10:17 (2)
Reliable
10:20 (3)
Reliable
https://workboxjs.org
10:25 (5)
Reliable
https://jakearchibald.com/2014/offline-coo
kbook/
10:30 (5)
Reliable
Rule of thumb:
- Static assets: precache
- Assets from other sites: networkFirst
10:35 (5)
Reliable
Reliable
10:37 (2)
Reliable
10:30 (3)
Reliable
10:35 (5)
Reliable
10:40 (5)
Reliable
https://modernizr.com/
10:42 (2)
Reliable
http://bit.ly/polyfill-list
10:45 (3)
Making it Engaging
10:47 (2)
Engaging
AMP it up
10:50 (3)
Engaging
AMP it up
10:55 (5)
Engaging
AMP it up
11:00 (5)
Engaging
AMP it up
Rule of thumb
- Use AMP if you are dynamically
creating and serving static content
- Don’t use AMP if you need JS to run to
show content (like Single Page
Applications)
11:15 (5)
Engaging
Engaging
Web Components
11:17 (2)
Engaging
Web Components
Web Components
<image-carousel>
<img>
<img>
<img>
</image-carousel>
9:40 (5)
Integrated
Web Components
9:40 (5)
Engaging
Web Components
Engaging
Web Components
Engaging
11:45 (3)
Engaging
12:27 (2)
Chrome Dev Tools
12:30 (3)
12:35 (5)
Network Tab
12:37 (2)
Performance Tab
Coverage Tab
Source Tab
Element Tab
Security Tab
Application Tab
Audits Tab
Webpagetest.org
Saucelabs
Test My Site
https://testmysite.thinkwithgoogle.com/
In Practice
http://bit.ly/ioextended-ph-73
http://bit.ly/ioextended-100
http://bit.ly/ioextended-ph-w
ebpage-test
Inspiration
http://bit.ly/devfest-ph-201
7-medium
Inspiration
http://bit.ly/element-lite
Element-lite
SPA-lite
Recap
Web
Web
We need it to be Accessible, Fast, Integrated, Reliable, and
Engaging
State of Web:
Making the Web AFIRE.