I’ve been editing the W3C website for a few decades now (gasp!) and in leading its redesign from the 2008 design, I am learning an astounding amount of new things about it! Here are some of the things I know about it.
Spotlight on the W3C website
In the 21 years I’ve been with the W3C, I remember only 3 different designs, the current one dates from a decade ago. Redesigning our website is crucial to improve the overall experience of those who depends on our Web standards work.
The website is managed by W3C itself and has been up for three decades. It currently contains over 2 million web pages. They’re static HTML or built in Perl, PHP, come from WordPress or are custom built using Symfony.
Tech stack summary
- Debian Linux
- Apache is used for serving the static content
- MySQL for database storage
- Varnish HTTP Cache is used for full-page caching
- HAProxy is used for load balancing
- There are over 3,700 Apache .htaccess files with different rewrite rules
Hosting & content
In a large-scale hosting setup, there are around 100 servers running Linux Debian on OpenStack, of which 20 to 30 servers are related to the primary website.
Web content is stored mostly in CVS and databases via CMS tools (WordPress, Symfony), and secondarily in GitLab and GitHub.
Most content is managed as static HTML edited locally (e.g. emacs, vi, BlueGriffon) and committed into CVS repositories using CVS clients, the terminal or HTTP PUT or WebDAV. Or, content is generated dynamically using Symfony or statically via makefiles, XML and XSLT.
25 instances of WordPress power the W3C Blog (over 950 posts) and W3C News (over 4,200 items), but also our Talks, working groups blogs, a test site, and W3C Community and Business Groups.
The W3C Homepage
The current homepage of the W3C website is a mix of HTML snippets which usually appears elsewhere on the W3C site, generated via XML, XSLT, PHP and other tools:
- The News items are read from WordPress
- The “homepage news” category determines what to show on the W3C homepage; we typically show up to 9 entries
- The “top story” category determines which news item is expanded on the W3C homepage; we prefer to feature one, but have at times shown two or more
- The right-hand side shows the last three posts from the W3C Blog
- W3C Member Testimonials rotate from a database
- The Events and Talks are shown from a Symfony app and WordPress respectively
- The search bar links to an external DuckDuckGo search (that we chose for its good reputation for data privacy)
- The rest is static
Markup errors in any of the source files will likely “break” the homepage. On average, I break the homepage 10% of the time!