Subtext Roadmap

subtext 0 comments suggest edit

This document describes the goals for future versions of Subtext as well as a plan for achieving them. The goals for this roadmap are the following:

  • Communicate to end users what features are planned for future releases
  • Elicit feedback from users about upcoming releases
  • Provides a prioritization of features

This document is a work in progress and feedback is welcome.

Administrative Road Map

  1. Documenting existing source code and features. (priority: high)
  2. Fill specific project roles (patch manager, forum manager, etc…) (priority: high)
  3. Set up a website and Wiki for Subtext (unfortunately is taken). (priority: med)
  4. Set up an automated build process (NAnt) (priority: low)

Upcoming Releases

As we flesh out the roadmap, we’ll divide it into sections based on planned future individual releases. For now, this document will simply list goals and features planned for the near and far future.

Gotta Have It Features Immediately (priority 1)

These features will directly support the principles of the Subtext project. UPDATE: We are rethinking the single vs multiple blog support. More details later. One important “feature” that must be discussed is the dropping of the “multiple blogs on one installation” feature. In order to maintain Subtext’s goals of simplicity and it’s focus on the hobbyist and individual blogger, it makes sense to focus on the scenario where users are using Subtext to create a single blog. This will distinguish Subtext from Community Server which is geared towards corporations and groups that wish to host multiple blogs. Please provide feedback on this decision.

  • Installer for local setup: We’ve started an installer using the WiX toolkit. Initially, this will be an MSI package that will install both a website and the database when run locally. Eventually, it will have to be able to upgrade an existing installation.
  • Simplified configuration (single blog): By removing the multiple blogs feature, configuration can be simplified immensely.
  • Configuration utility: Upon first installing Subtext, the configuration utility will be an easy to use WinForms app used to set the connection string (and certain other settings if any) within the web.config file. This utility can be run at any time to tweak web.config settings without having to muck around the XML by hand.
  • Kick ass documentation: Can’t stress this enough. We’ll use NDoc to generate code and API documentation. As for user documentation, we’ll have both a project site and a wiki.
  • Comments Automatically Expire: This is currently hard-coded into Subtext and needs to be made configurable. Allow the user to have comments turned off after a configurable number of days. Existing comments will still be displayed, but no new comments will be allowed.

Gotta Have It, But Just not yet (priority 1.5)

  • Friendly Urls: Currently, Subtext creates permalinks that look like In a future version, we want the permalink to have a more human readable URL. For example, this might be converted to
  • Improved Usability: One of my pet peeves about .TEXT is how hard it is to edit a really old post. You have to page through the data grid of posts till you find it. Instead, a simple option is to create a new admin token that skin creators can place in their skin where a post is rendered. When a user is logged in as an admin, the token is displayed as an icon with a link that the admin can click to edit that post. Thus, to edit an old post, simply make sure you’re logged in as an admin and leverage Google to find the post, and then click on the admin token.
  • Replace/Upgrade FreeTextBox.dll: Hopefully with something that won’t mangle HTML.
  • Comment Moderation: This is merely one tool in the constant battle to fight comment spam. Allows users to turn on and off comment moderation.
  • Simple Comment Filtering Rules Currently, uses a simple trigger that filters out comments with a certain number of links. This exceedingly simple filter does remarkably well. To fight comment spam, we should start with a few simple (and configurable) rules for filtering comment spam. We can add more complex rules later.

Important, But Maybe Next Release Features (priority 2)

  • Membership Provider Model implementation: This will be a very simple system that allows a blog owner to create accounts with certain roles (reader, author, admin). Thus a blog can have multiple authors for a single blog.
  • New CSS based Templates: These will be templates that can be “skinned” purely via CSS (ala CSS Zen Garden). We’ll provide a tool for a blog owner to edit and switch CSS for this particular template.
  • XHTML compliance: Both transitional and strict.
  • Comment Filtering Rules Engine: This will be similar to the Junk Mail rules engine in Outlook. We’ll provide a web based interface for creating filtering rule used to combat comment spam.

Features to dream about (priority we’re dreaming)

  • A Spell Checker: For all those bad spelers out there.
  • Migration utility: We’re not so arrogant as to believe you’ll never use another blogging engine again. If you do, we want to help you migrate your permalinks and posts to it.
  • MySql Provider: because not everyone wants to pay for SQL Server hosting and some people want to honor their license agreement for MSDN Universal. ;)
  • Mono support: This may be way down the road, but supporting Mono would be a nice way to introduce the Linux crowd to the beauty of ASP.NET and Subtext. Besides, we’ll finally get props from the Slashdot crowd for our 1337 sk1llz.
  • Intelligent comment filtering: Whether it be via Bayes filtering or some other means, but a more autonomous method of spam filtering is called for.

Tags: Subtext

Found a typo or error? Suggest an edit! If accepted, your contribution is listed automatically here.



7 responses

  1. Avatar for Victor Boctor
    Victor Boctor May 8th, 2005

    Administrative Tasks:

    - FxCop: fix FxCop violations.

    - Unit Tests: Consider adding some unit tests, at least for the critical classes.

    - Use Docbook and eDE for external documentation.

    - I totally agree that there is almost no internal documentation and that it is a priority to improve this.

    I think MySQL and Mono will widen the market of Subtext considerably.

    I believe we should consider keeping the multi-blog support, but maybe have the initial installation installs a single blog, then the user can trigger further steps to add multiple blogs. Since I am not yet familiar with the install, I can't judge, but I thought I would suggest this anyway.



  2. Avatar for AC
    AC May 8th, 2005

    Very interesting work you're planning. I'm already doing some of this with the v0.95 as my baseline. Maybe some of my changes could be incorproated into your version. I plan to do a complete Enterprise Library implementation replacing some of the config options (like connection strings, managed paths, etc).

  3. Avatar for haacked
    haacked May 8th, 2005

    We're using v0.95 as the baseline too. What have you done so far?

  4. Avatar for Ryan
    Ryan May 10th, 2005

    I like .PNGs, but .Text doesn't, which pisses me off. I agree whole-heartedly on the CSSification of the whole thing, that would make it much nicer.

    I haven't dug into it, but based upon casually perusing the .Text source I saw a bunch of HttpHandlers that looked a bit goofy. I think that was mostly about supporting multiple blogs, but it seemed like it could be drastically simplified by writing some things to disk and letting IIS serve them up as normal.

    The other thing I've always wanted is priveleged users, so you could have posts meant for the public, and then have some posts only available to logged in users. Then on corporate blogs (like mine) I could complain and then flip the "private" bit that prevents the general public from seeing possibly sensitive information. Or on a more personal blog, write about my Friday night without worrying about my mom googling to it.

  5. Avatar for Haacked
    Haacked May 10th, 2005

    Ryan, the HTTP handlers are responsible for dynamically rendering links. That way, every time you post, you don't have to create a new .aspx page. For example, the link to this post is

    As for the privileged user idea, I really like it. We've been talking about something similar internally.

  6. Avatar for use IBATIS
    use IBATIS May 18th, 2005

    Use IBATIS. It will let you connect to all databases including MYSQL.

  7. Avatar for Mik
    Mik June 1st, 2005

    I think multiple blog configuration in a single site it won't be worth since there's Community server available. It's important to mantain the possibility to have multiple blogs in multiple sites and only one DB. It should be great if one could link the same blog to different hostnames (now it's impossible because of primary keys in db).