Frassle's upcoming Publisher (formerly Site Builder, formerly Page Builder) component makes it possible to create many types of web community sites using frassle in the backend. Unfortunately, it doesn't make it easy. If you want to make a weblog, you have to create a site, then create some pages, the add some blocks to those pages. To create the blocks you have to know your RSS feed's URL and write strange "noteset expressions" that aren't non-programmer-friendly. Frassle needs a way to make this really easy, particularly if you just want to make a weblog.

Here's an obvious idea I hadn't thought of before: publisher scripting. Frassle developers write some code that describes how to prompt the user and take actions based on those prompts. For a weblog, you might prompt for the user's name, a title and tagline for the weblog, a note about the author, and some RSS URLs of feeds that the user reads. Different publisher scripts could make different kinds of sites that show off a variety of frassle's strengths.

The scripts could be Perl code, but they should use a well-defined, stable vocabulary (API). The goal is that a programmer should be able to read about how publisher scripts work, then sit down and write one. That script should be easy to deploy in any frassle installation, much like the current page block system. (A page block is a template that renders a list of notes inside a page. For example, you might render the full or excerpted text of your most recent entries in a block in the center of your page, and show a list of titles in the right column.)

These types of modules — intermediate in complexity and easy to share — are crucial to my goal of opening frassle development to new contributors. Frassle desparately needs new authors and critics: I've gotten used to many of its quirks and deficiencies, and countless potential improvements escape my sight. But it's currently just impractical for others to contribute without my intimate involvement. There is no downloadable code, CVS repository, or documentation. But these are easy to fix. The important thing is that there be a gentle slope into development. Roughly:

  1. Frassle piques your interest.
  2. You start using frassle to bookmark some stuff, and perhaps use the aggregator.
  3. You start using frassle to post some notes and participate in discussions.
  4. You build a site using frassle publisher.
  5. You want something unusual on your frassle site, so you develop a special page block.
  6. Other people beg you to show them how you built your site. You write a publisher script that allows others to create something like it easily.
  7. You want something I can't even imagine yet, so you make (or simply suggest) changes to frassle itself.

That's right… weblogs are just a gateway drug! (=