Wikimedia blog maintenance/April 2011 overhaul

This page attempts to assess the current situation regarding Wikimedia blogs, and to propose improvements.

Current situation
The Wikimedia blog was created in April 2008; it was presented then as a way to "engage in a less formal discussion, and to bring up the sorts of topics that may not fit in a press release" and "a space to ask questions of the Wikimedia community.

The Wikimedia tech blog was created in March 2009. Its goal stated then was to be "much more technical [...] than the Wikimedia Blog (which covers Foundation issues and news)" and to cover "software updates, server changes, and other such issues".

In practice, though, the line between the content of these two blogs is difficult to draw. Monthly engineering reports, for example, aren't only of interest for a tech audience. Having two blogs also creates redundancy.

Besides, as the Wikimedia Foundation grows, other departments are likely to want dedicated blog sections as well; it's already the case for the Community and the Strategic product departments. Initiatives like India and the Brazil Catalyst Project are likely to follow.

Our current blog setup suffers from some flaws:
 * The current layout gives all posts the same weight, whether they're important announcements or "routine" posts.
 * The current layout makes it difficult to browse posts by topic; categories are underused or abused, and in any case hidden in the sidebar.
 * The theme imitates the Vector skin of MediaWiki, but isn't really adapted to showcase the content of a thematically diverse blog.
 * The coverage is inconsistent, depending on the size & composition of the teams, and willingness to communicate.

Having some sort of separation between departments would help solve some of these issues. However, creating different blogs for each department causes additional issues:
 * Readers need to subscribe to several RSS feeds, or to visit different websites.
 * Posts get duplicated between blogs.
 * Blogs require separate administration and maintenance; accounts have to be created separately.

Fortunately, it's possible to accomplish some separation with a unique blog used well.

Proposed channels

 * highlights / featured
 * technology
 * community
 * global
 * our wikis (milestones, etc.)
 * Strategy / research?

Technical proposal

 * Based on the assessment of the two solutions (WordPress single install vs. WordPress network), the proposed solution is to use a WordPress single install.
 * Channels are implemented as top-level categories.
 * "Routine" posts are published in their dedicated channel, and "important" announcements in the additional "highlights" channel that will give them more visibility.
 * Channels use the same theme; channel-specific changes can be done easily by adding category-specific CSS classes to the  (by adding classes with a filter using the body_class function).
 * Channels are not included in the permalinks structure for performance reasons and because Cool URIs don't change; if a channel needs to be renamed in the future, we don't want to break all the permalinks.
 * Most (sidebar) widgets are common to all channels (basic links, donate button, etc.).
 * Some amount of widget customization can be done but should be left to a minimum to keep a consistent look. For example, links can be selectively displayed according to their link category.

Implementation plan

 * Week #9
 * Guillaume, Jay, Steven: discuss requirements ✅
 * Guillaume: assemble technical proposal based on requirements ✅
 * Jay, Steven: look for sites & features we can use as inspiration
 * Guillaume: get admin rights on the blogs to export the content for the prototype, or get an admin to provide them ✅
 * Guillaume: check how to merge authors ✅
 * Week #10, #11, #12
 * Guillaume: submit technical proposal to Jay & Steven ✅
 * Guillaume: prepare prototype if possible ✅: prototype
 * Jay & Steven: comment on proposal; if ok, ✅
 * Guillaume: discuss feasibility with RobH ✅
 * Week #13
 * Guillaume: Check subscribers of the tech blog ✅
 * Guillaume: do reality-check with Danese ✅
 * Week #14
 * Guillaume: prepare implementation checklist ✅
 * Guillaume: discuss schedule with RobH ✅
 * Guillaume: clean up categories on all posts on the Wikimedia blog ✅
 * Implement (see below)
 * Post away!
 * Week #15
 * Merge the tech blog in
 * Expand blog guidelines

Production install
 RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule. /index.php [L] 
 * [Guillaume] Add images of the sidebar to the blog
 * [RobH] (optional) Install and enable WP Maintenance mode plugin? so readers avoid seeing wonky stuff during the upgrade
 * [RobH] Upgrade WordPress to version 3.1.1
 * [RobH] Upgrade the plugins to the latest version, if required
 * [RobH] (optional) Install the JetPack plugin (replacement for the WordPress stats plugin that has become obsolete)
 * [RobH] Set up the modified theme: In the  folder, do a
 * [Guillaume] Add menus & widgets (copy from prototype; can't be done in advance since the theme needs to support them)
 * [RobH] Set up redirects (communityblog and globalblog.wikimedia.org)
 * [Guillaume] Update the permalinks settings to remove the  part between the domain and the date (25953)
 * [RobH] Add redirect from  to   ; otherwise posts will continue to work but other URLs like categories won't
 * [Guillaume] Update the category permalinks structure to use the  prefix instead of
 * [RobH] Add the following to the .htaccess file:
 * [RobH] Add redirect from  to

Related stuff
 * [RobH] Add redirect from http://blog.wikimediafoundation.org to http://blog.wikimedia.org

Merge the tech blog FEEDS: http://techblog.wikimedia.org/feed/ http://techblog.wikimedia.org/feed/rss/ http://techblog.wikimedia.org/feed/rss2/ http://techblog.wikimedia.org/feed/rdf/ http://techblog.wikimedia.org/feed/atom/ REDIRECT: http://techblog.wikimedia.org/feed/* -> http://blog.wikimedia.org/c/technology/feed/* CATEGORIES http://techblog.wikimedia.org/category/* -> http://blog.wikimedia.org/c/* POSTS http://techblog.wikimedia.org/20* -> http://blog.wikimedia.org/20*
 * [RobH] Back up both blogs
 * [RobH] Install the WordPress importer plugin
 * [Guillaume] Import articles from the tech blog to the main blog, and assign posts to the relevant authors
 * [RobH] Add redirects from old tech blog URLs to the new URLs on the main blog, including RSS and Atom feeds. We should be able to capture all posts with a simple redirect:

Updates & announcements
 * [Guillaume] Publish announcement blog post on main blog
 * [Guillaum] Publish announcement
 * [Steven] Welcome post on Community blog
 * [Moushira] Welcome post on Global blog
 * [Guillaume] Send modified announcement to Comcom & staff list
 * [Guillaume] Update blog guidelines

Bugs

 * add channel appearance for subcats archives ✅
 * footer is misaligned on 404 pages

Things to keep in mind

 * Small "status" widget, linking to http://status.wikimedia.org and/or short articles about outages; right now the information is scattered around microblogs / short articles on the tech blog (but should interest a very general audience of users)
 * Identica Widget
 * general feed
 * HR feed
 * ops feed
 * Currently, the Communications team oversees the main blog. This could be scaled to a team of channel curators who would particularly care for their channel (handle moderation, copyedit articles, encourage people to write articles, etc.).
 * Add description to categories, and show them on the category pages
 * Add mini biographies for post authors, and fix posts that were posted on behalf of someone else?
 * Fix external images that are hotlinked from blog posts; add item to blog guidelines about this
 * Change default sizes of media
 * Remove the trailing "<" that appears at the very end of old articles
 * Fix the alignment issues of images
 * Widgetize the footer
 * Improve the integration & visibility of channels
 * Organize the main page into a magazine layout
 * Move the Wikimedia-specific styling to a separate style sheet.
 * Hide or at least push down the  smiley that goes with stats
 * Normalize displayed names or authors to "Firstname Lastname" for clarity towards the community