Skip to content

Commit 3120f64

Browse files
committed
added Vocabulary - Performance Improvements
1 parent 78eab9c commit 3120f64

File tree

1 file changed

+92
-0
lines changed
  • content/internships/project-ideas-collection/vocabulary-performance

1 file changed

+92
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
_model: project-idea
2+
---
3+
_hidden: yes
4+
---
5+
title: Vocabulary - Performance Improvements
6+
---
7+
problem:
8+
[Vocabulary][vocabulary] currently has some performance issues, related to:
9+
- File size of CSS files
10+
- Runtime loading cascade (importing Vocabulary from the CDN then loads
11+
additional stylesheets and font files in sequence, instead of in parallel).
12+
We need to eliminate this waterfall.
13+
14+
Performance can also be further improved via documentation, and sharing best
15+
practices for implementing vocabulary with consumers:
16+
- Guidelines and suggestions for using [purgecss][purgecss] with Vocabulary
17+
- Instructions on how/and what to prefetch or preload (with copy-pastable meta
18+
tags) (see: [Preload, prefetch and other link tags | CSS-Tricks][csstricks])
19+
- Create tooling so that these performance improvements can be maintained over
20+
time. Some ideas:
21+
- Filesize monitoring via GitHub actions: [ampproject/filesize][filesize]
22+
- Add linting rules for Sass files [sds/scss-lint][scsslint]
23+
24+
[vocabulary]: https://github.com/creativecommons/vocabulary/
25+
[purgecss]: https://github.com/FullHuman/purgecss
26+
[csstricks]: https://css-tricks.com/preload-prefetch-and-other-link-tags/
27+
[filesize]: https://github.com/ampproject/filesize
28+
[scsslint]: https://github.com/sds/scss-lint
29+
---
30+
expected_outcome:
31+
This work will have a strong and measurable impact on all sites using CC
32+
Vocabulary. The current live sites using vocabulary are:
33+
- https://chooser-beta.creativecommons.org/
34+
- https://opensource.creativecommons.org/
35+
- https://search.creativecommons.org/
36+
- https://summit.creativecommons.org/
37+
38+
We will be updating more CC websites to use Vocabulary in Q1 of this year.
39+
These changes will be quantifiable by measuring changes in page size (measured
40+
in kilobytes), and reduced load times on the Google-defined metrics "[core web
41+
vitals][[corewebvitals]]": Largest Contentful Paint (LCP), First Input Delay
42+
(FID), and Cumulative Layout Shift (CLS).
43+
44+
[corewebvitals]: https://web.dev/vitals/
45+
---
46+
internship_tasks:
47+
- Audit the current performance issues
48+
- Rewrite and modify CSS files and the build pipeline
49+
---
50+
application_tips:
51+
Applying interns should do some basic performance analysis of some existing CC
52+
web properties using Vocabulary. They should also outline how they intend to
53+
measure the results of their work, taking special care to capture as much
54+
relevant initial data and reporting *before* their changes are implemented as
55+
possible.
56+
57+
This project requires proficiency in CSS/Sass and optionally an understanding
58+
of front-end build tooling with NPM. Some JavaScript may likely be useful as
59+
well. This is a great opportunity for a developer to learn about front-end
60+
performance profiling, "modern" web performance metrics, and many native HTML
61+
APIs and specifications for dealing with asset loading.
62+
---
63+
resources:
64+
- **[Applicant Guide][appguide]**
65+
- [creativecommons/vocabulary][vocabulary]: A cohesive design system & Vue
66+
component library to unify the web-facing Creative Commons
67+
- [Web Vitals][webvitals]
68+
- [Best practices for measuring Web Vitals in the field][bestpractices]
69+
- [PurgeCSS - Remove unused CSS][purgecssdocs]
70+
- [how and why to avoid css @import statements in stylesheets on your
71+
websites - lost saloon][avoidimports]
72+
73+
[appguide]: /internships/applicant-guide/
74+
[vocabulary]: https://github.com/creativecommons/vocabulary/
75+
[webvitals]: https://web.dev/vitals/
76+
[bestpractices]: https://web.dev/vitals-field-measurement-best-practices/
77+
[purgecssdocs]: https://purgecss.com/
78+
[avoidimports]: https://www.lostsaloon.com/technology/how-to-avoid-css-import-statements-in-stylesheets-to-improve-seo/
79+
---
80+
skills_recommended:
81+
- CSS
82+
- CSS Preprocessors (Sass)
83+
- JavaScript (optional)
84+
---
85+
mentors:
86+
- Abhishek Naidu
87+
- Nimish Bongale
88+
- Zack Krida
89+
---
90+
difficulty: Medium
91+
---
92+
filter_value: difficulty-medium skill-css skill-javascript

0 commit comments

Comments
 (0)