Skip to content

Commit e6c28bc

Browse files
authored
Merge pull request creativecommons#784 from creativecommons/20230927-creativecommons-org
add blog post: New CreativeCommons.org launched 2023 September
2 parents 49509b5 + 2448c8c commit e6c28bc

File tree

1 file changed

+196
-0
lines changed
  • content/blog/entries/2024-05-28-creativecommons-org

1 file changed

+196
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
title: New CreativeCommons.org launched 2023 September
2+
---
3+
categories:
4+
cc-legal-tools
5+
cc-vocabulary
6+
open-source
7+
website
8+
wordpress
9+
---
10+
author:
11+
sara
12+
shafiya
13+
TimidRobot
14+
---
15+
pub_date: 2024-05-28
16+
---
17+
body:
18+
19+
Creative Commons (CC) launched a new
20+
[CreativeCommons.org](https://creativecommons.org/) website on 2023 September
21+
27th. This relaunch included not just the website, but the entire technology
22+
stack (platform, server, and website components).
23+
24+
25+
## Improved platform
26+
27+
The new website is hosted on AWS. This allowed us to design a more secure
28+
network architecture between services and deploy/manage the services using
29+
infrastructure as code.
30+
31+
32+
## Improved services
33+
34+
The services running the website were simplified and updated. The number of
35+
distinct servers was reduced from six down to two. Previously, loading the
36+
homepage required five services (HAProxy, Varnish, Apache2, PHP+FPM, and
37+
MariaDB). The complexity of the old services made troubleshooting more
38+
difficult. They were designed before Cloudflare began supporting us through
39+
[Project Galileo](https://www.cloudflare.com/galileo/). The new website
40+
requires only two services (Apache2 and MariaDB).
41+
42+
43+
## Improved website components
44+
45+
46+
### Vocabulary
47+
48+
The website consists of a variety of components that use the Vocabulary design
49+
system ([creativecommons/vocabulary][vocabulary]) to present a unified user
50+
experience. This relaunch was the first implementation of the new Vocabulary.
51+
It has returned to web core principals favoring semantic HTML and appropriately
52+
scoped CSS styling. It keeps the style layer responsibilities firmly within the
53+
CSS, rather than utilizing a framework like Bootstrap to add a myriad of
54+
style-based classes to the HTML layer. Furthermore, JavaScript use has been
55+
kept incredibly minimal, offering routes of behavior that can’t already be
56+
accomplished via HTML and/or CSS, letting HTML and CSS do what they do best.
57+
This simplicity improves performance and also lowers barriers for community
58+
contributions.
59+
60+
Accessibility was a priority, making the code more semantic already helps, but
61+
we went further in ensuring that all the affordances you get from HTML aren’t
62+
blocked or altered via opinionated (and often non-standard) frameworks. The
63+
site performs better generally, and is much kinder to slower connection speeds.
64+
65+
The new implementation of Vocabulary includes a new Information Architecture
66+
and more stable UX approach for better visitor experiences. CC licensed media
67+
is one of our strengths and as such it was important to allow proper
68+
attribution to be baked into every instance of media rendering within the
69+
design. This means that while the image or video may be important to the flow
70+
of content, its attribution also gets a level of appropriate importance as
71+
well, highlighting ways in which others might handle attribution and following
72+
through on our own mission in the pursuit of better sharing at large.
73+
74+
[vocabulary]: https://github.com/creativecommons/vocabulary
75+
76+
77+
### WordPress
78+
79+
The project utilizes a custom WordPress theme
80+
([creativecommons/vocabulary-theme][vocabulary-theme]) that implements the new
81+
Vocabulary design system.
82+
83+
The theme utilizes the WordPress Classic Editor because of its long-term
84+
stability and more stable UX. Gutenberg still does not adhere to adequate
85+
Accessibility approaches, nor does it have a sense of stable
86+
feature-completeness. This creates an unreliable landscape to build upon.
87+
Gutenberg also requires one to build Block composition through React.js to
88+
accomplish tasks that are far easier and more approachable with the standard
89+
PHP templates that the Classic Editor is compatible with. This dramatically
90+
improves the ability for a new contributor to help, and speeds up the
91+
development process.
92+
93+
To allow a degree of more varied page composition, Advanced Custom Fields was
94+
utilized to more easily add, update, and version control custom fields across
95+
pages and page templates. This strikes a balance between more complex page
96+
composition, but within a more controllable set of circumstances.
97+
98+
Plugins in general were cut dramatically. The legacy site contained 20 active
99+
plugins, while this project relies on less than half, at 9, with hopeful
100+
pathways to eventually cut that number even further.
101+
102+
The site utilizes several custom content types and better taxonomies to split
103+
up the UX flow of varied kinds of content creation, allowing for smoother
104+
multi-author attribution, site-wide notices for fundraising and event
105+
announcements, and better blog post organization and way-finding overall.
106+
107+
[vocabulary-theme]: https://github.com/creativecommons/vocabulary-theme
108+
109+
110+
### CC Legal Tools
111+
112+
With the deployment of our new website, we also replaced the legacy ccEngine
113+
with the new CC Legal Tools. The current legal tool landscape is refreshingly
114+
simple with only seven tools (CC BY 4.0, CC BY-NC 4.0, CC BY-NC-ND 4.0, CC
115+
BY-NC-SA 4.0, CC BY-ND 4.0, CC BY-SA 4.0, CC0 1.0). However since previous
116+
versions of the licenses were adapted to specific jurisdictions (ported) and we
117+
collaborate with the community to support many translations, the new CC Legal
118+
Tools app manages over 30,000 documents!
119+
120+
The project to rewrite the CC Legal Tools and replace the legacy ccEngine began
121+
in 2020 with a request for proposals ([RFP: License Infrastructure - Google
122+
Docs][rfp]). The [Caktus Group](https://www.caktusgroup.com/) began the new CC
123+
Legal Tools using the Django Python web framework. The work was continued by
124+
Timid Robot. Saurabh helped with RDF/XML generation ([CC Legal Tools:
125+
Machine-Readable Layer — Creative Commons Open
126+
Source](/blog/entries/2023-08-25-machine-layer/)).
127+
128+
The new CC Legal Tools consist of two repositories:
129+
130+
1. [creativecommons/cc-legal-tools-app][cc-legal-tools-app]: *Static site
131+
generator using Django*
132+
2. [creativecommons/cc-legal-tools-data][cc-legal-tools-data]: *Inputs and
133+
outputs of the application*
134+
135+
The legacy ccEngine consists of around 15,960 lines of Python 2. It was
136+
developed and extended organically over time, resulting in a less coherent
137+
codebase. The new CC Legal Tools has the benefit of hindsight and was
138+
architected as a single application to meet all of current requirements of CC.
139+
It consists of around 17,400 lines of Python 3 (including around 4,000 lines of
140+
tests). Benefits of the new CC Legal Tools include:
141+
142+
- Currently supported software (Python 3, Django 4.2, etc.)
143+
- Simplified data model
144+
- Improved translation handling
145+
- Improved RDF/XML generation/management
146+
147+
In particular, the fact that the new CC Legal Tools generate static assets is
148+
noteworthy. Static assets can be hosted performantly with a very simple service
149+
setup.
150+
151+
[rfp]: https://docs.google.com/document/d/1mlgmjDorTEwgIRRrvILK3v0pTJbGx8fB5SE1yplrz3Y/edit
152+
[cc-legal-tools-app]: https://github.com/creativecommons/cc-legal-tools-app
153+
[cc-legal-tools-data]: https://github.com/creativecommons/cc-legal-tools-data
154+
155+
156+
### Chooser
157+
158+
The new chooser beta ([creativecommons/chooser][chooser]) was promoted to
159+
production with the new header and footer from the Vocabulary design system for
160+
a more uniform user experience.
161+
162+
[chooser]: https://github.com/creativecommons/chooser
163+
164+
165+
### FAQ & Platform Toolkit
166+
167+
The FAQ ([creativecommons/faq](https://github.com/creativecommons/faq)) and
168+
Platform Toolkit ([creativecommons/mp](https://github.com/creativecommons/mp))
169+
were updated to use the new header and footer from the Vocabulary design system
170+
for a more uniform user experience.
171+
172+
173+
## Improved development
174+
175+
Utilizing infrastructure as code, we now have a much more robust staging
176+
environment. This allows us to preview larger changes so that they can be
177+
deployed to production with minimum risk. We also improved our local
178+
development environment and content synchronization tooling
179+
([creativecommons/index-dev-env][index-dev-env]). This means that not only did
180+
we fix many old bugs, but when new bugs are identified, we can fix them more
181+
rapidly!
182+
183+
[index-dev-env]: https://github.com/creativecommons/index-dev-env
184+
185+
186+
## Thank you
187+
188+
Thank you to the people who directly contributed to the success of the new
189+
website!
190+
191+
- Nate, former Director of Communications & Community
192+
- Sara, Full Stack Engineer
193+
- Shafiya, Systems Engineer
194+
- Timid Robot, Director of Technology
195+
- *as well as many other previous staff, community contributors, and other
196+
[supporters](/community/supporters/)!*

0 commit comments

Comments
 (0)