GSoC Proposal: Specialized Theme for Ideas & Feedback

The current WordPress Idea Forum is a useful and necessary way for the project to receive feedback and accept feature requests from the WordPress user-base. However, there are certain features that could be improved and refined to make the forum even more effective. Just as P2 impacted Automattic positively by allowing instant collaboration on posts and topics, I believe a new specialized “ideas” theme would foster user-base collaboration on ideas in the Idea Forum.

Project Proposal

My Google Summer of Code proposal is to write a highly specialized WordPress theme package that would create a more effective means for enabling an “ideas forum” or an “ideas site.” The theme package would certainly offer the functionality of the current site, but would also offer a number of specific improvements on what is currently implemented at

The specialized theme package could potentially be used to power the WordPress Ideas forum once the Summer of Code completes. However, as indicated, the main scope of this project proposal is to release an open source “idea forum” theme with significant enhancements in functionality over what is currently available for WordPress users. The specialized theme package would include a feature set similar to those of Ubuntu’s Brainstorm (, SlinkSet (, UserVoice ( and Dell’s IdeaStorm (

The main rationale for delivering this project as a WordPress theme package is that it could serve as a means to quickly acquire, test, and refine an enhanced feature set that could eventually be integrated with a new official WordPress Idea Forum. Some of the useful features that could be included in the Idea Forum by using WordPress as a base are the ability to assign multiple categories to an idea, threaded comments, the use of post status indicators to visually separate closed and open ideas, and so on.

While a number of new features can be supported by using a WordPress base, the following new features would be specifically included as part of the proposed theme:

Promote/Demote System

The theme would implement a promote/demote system for voting on ideas on the front-end. Users would click a “thumbs up” icon to show their support for a specific idea thread or a “thumbs down” icon if they disapprove or disagree with a thread. This would be a +1, -1 system.

Visual Posting Editor + Attachments

Not everyone that uses WordPress knows HTML. A visual editor such as the one included with WordPress would make it easier for some users to add formatting to their idea posts. Only tags such as the ones permitted in posts now would be allowed. The editor would degrade if JavaScript was not enabled. The posting screen would also allow users to post screenshots with their postings, for instance if they wanted to propose a UI screen or give a visual illustration of their idea.

Improved Comments System (with Solutions System)

A new comments system would be included in the theme that would allow for two types of comments:

  1. A normal comment giving general feedback on the idea or proposing additional ideas. This would be plain text with perhaps some minimal formatting or links.
  2. A specific solution to an idea, which would be displayed above the normal comments. See Ubuntu BrainStorm for an example.
    • A solution comment would allow attachments and would have the capacity to be voted up or down just like the main idea.
    • An example use: A user suggests better export/import functionality with a couple of feature ideas. A second user votes the idea up and has a specific solution in mind. Together they mock up a screen and post it as a solution for the idea. Other users can join in and vote this solution up and down, or post their own solutions.

Integration with Other Systems

Once an idea reaches a certain threshold (e.g., amount of feedback, number of solutions proposed, volume of comments, etc.) there should be a way to automatically generate some form of action, such as a Trac ticket. My proposal is to create a hook or filter and allow users to hook into their own action/ticket systems. These actions should only be available to certain users, e.g., moderators.

I will create an example plugin to accompany the theme that makes use of a filter to link with Trac installs. The plugin would allow a moderator to easily create a Trac ticket with a link back to the idea that instigated it. The Trac plugin would also allow the selection of one of the proposed solutions. The proposed solution would become the first comment on the generated Trac ticket.

Improved Reporting Features

Instead of replying (and bumping a topic) and applying the tag “modlook,” users will be able to report a topic and moderators will be able to see it in a new report center.

The report system will allow moderators to see why a specific idea needs to be monitored or acted upon (spam, lots of fighting, etc.) and quickly take action on the idea. Craigslist-type reporting features are one example of a potential implementation.

Popularity System

The theme would take into account the number of up votes, comments, solutions and views for generating a consolidated popularity score. Also, if an idea is linked to in a blog (track-back) then its popularity will increase. The ideas with the highest popularity score would be submitted to be shown in a “popular” section and on the home page of the ideas section.

A hook will be available to add new features to the popularity metric. An example plugin using retweets as a popularity measurement will be included as part of the project.

Official Summary of Resolution

The implementation of a custom field or post type would provide a feature that would allow an official summary of the resolution of an idea thread to be posted. For example, a moderator of would be able to use such a feature to generate a generic “this feature is better left to plugins” message and then plug in the applicable links and post the message as an official verdict.

Improved Search for Ideas

The default WordPress search can be messy for a popular idea site with a lot of idea listings. A special bundled version of my Search API plugin ( would be integrated with the theme to enable better filtering and display of results.

New Ideas Homepage

The theme would create a new, fresh home page for displaying ideas. The page would boast a cleaner and fuller presentation of ideas, including descriptions instead of just titles. Both new ideas and popular ideas would be shown. Alternative ways of browsing ideas would be included, such as tag clouds. Work would be integrated with the WordPress UI team to ensure a logical layout.

Posting Limits

A feature would be added to limit the number of open ideas that a user could have. The limit could be changed by the administrator in the WordPress back-end or disabled altogether. The reason for including this setting is to constrain over-posters and encourage them to think about the feedback they are submitting. Once one of their open ideas is closed, over limit users would be allowed to post another idea. This feature could also potentially cut down on spam issues.

Companion Plugin: Dashboard Widget

A small companion plugin would be created to add a new widget to the WordPress Admin Dashboard. The widget would allow for the quick posting of ideas from within WordPress itself.

Research Completed

  • Posted the proposal March 21st on the wp-hackers mailing list (
    • Jeremy Clarke posted some feedback and ideas. One of the feature suggestions was email updates, which we would receive as a benefit from switching to WordPress. He also suggested a working favorites feature.
    • Stats Suscov posted about the current ideas forum running on bbPress.
    • Scribu posted a response to one of Jeremy Clarke’s ideas about email notification and stated that the dev version of bbPress will soon have email notifications.
    • Nacin contacted me off list about contacting Jane.
  • Researched and compared feature sets of various related products such as Ubuntu’s Brainstorm (, SlinkSet (, UserVoice ( and Dell’s IdeaStorm (
  • Sent the proposal to Jane Wells on March 21st and received some feedback about my ideas, specifically about deciding between implementing the project as a set of bbPress plugins or as a specialized theme for WordPress. Further discussion and chats took place about features, scope, etc. once it was decided that a WordPress theme was the best implementation route.
  • Presented the idea in the April 3rd GSoC chat and received +1’s /encouragement from some of the mentors present.


The final project outcome would be a specialized WordPress theme with the features detailed above that would be released to the public.

Once the project is completed the code could be used as a replacement for the current WordPress Ideas Forum.


I see this project being very successful and reaching completion, and I don’t foresee any significant challenges apart from deciding on a final feature set with my mentor(s).

Having said that, I will follow the “release early and release often” ideal so that my work is available in case something prevents the project from being completed as planned.

Potential Mentor(s):

Jane Wells. We have already discussed features, scope, and the goals of the project in general. We will also both be attending WordCamp Chicago in June and may be able to talk about the project in person. states that Jane could be the primary mentor for UX/interaction modeling, and an additional mentor could be identified for code reviews and feedback.


3 thoughts on “GSoC Proposal: Specialized Theme for Ideas & Feedback

  1. Pingback: Better Ideas (so to speak) « Make WordPress UI

  2. Pingback: My Introduction « WordPress Summer of Code 2010

  3. Pingback: Summary for June 8th 2010 UI Chat « Make WordPress UI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s