Matt Gemmell

TOLL is available now!

An action-thriller novel — book 2 in the KESTREL series.

★★★★★ — Amazon

Thinking about Thistle

development 2 min read

Serious thoughts on the future of <a href="">Thistle</a>.

To begin, a few facts about Thistle:
  • Thistle is very much in active development, after a recent 2-month (or so) hiatus.
  • Thistle currently has a very (very!) small userbase. I have no firm data on this, and I see new experimental Thistle blogs cropping up each week in my referrers, but I'd estimate that the number of people using Thistle seriously for their primary blog is around 10.
  • I'm not in contact with many of those few, either. There is an occasional post on the forums, and emails from time to time, but generally speaking I'm working more or less in the dark, proceeding with my own vision for what Thistle should be.
  • Thistle is still at a very early stage.

Given all these things, and indeed the likelihood that relatively few of the people concerned will read this, 
I've made a few decisions about future development:
  1. Thistle is moving to "slashed" URLs, in the Blosxom style. The old parameterised URLs from PHPosxom will be phased-out quickly, will no longer be supported by the out-of-the-box types and modules, and before long will be incompatible with Thistle.
  2. The authors system may be dropped completely. I would feel bad about losing such potentially useful functionality, but I've yet to find a Thistle blog which uses it, I've never used it myself, and it requires effort to remain compatibility with author-filters as we add new features and functionality. If you use the authors system, I need to hear about it soon.
  3. The PHPosxom-style type files (or flavour files, as they used to be) need to undergo a format change. The current system of having separate header, story and footer sections is ugly, and is difficult to understand for those who don't have much PHP experience.
  4. Posts and the categories hierarchy need to go into a separate directory within the main Thistle directory, as Alex Nicksay pointed out.
  5. We need to get rid of the built-in fallback type (which you'd only ever see if you hadn't specified a valid default type), and the built-in RSS 0.91 type. All types should be external to Thistle itself; both those types can readily be reimplemented as type files.
  6. Something needs to be done about modules. Currently, there are several modules which are far too tightly coupled with Thistle itself. There must be sufficient abstraction, without sacrificing flexibility. Thistle needs to rely less on modules "globalling" variables, and instead needs to provide more useful functions for the modules to make use of.
  7. Generally, Thistle has evolved thus far by hacking PHPosxom's core to make new features possible, and patching-up any problems which have arisen on a case-by-case basis. That kind of approach is unsustainable, and is difficult to follow in the first place. Thistle must abandon any aspects of its legacy implementation which are inconvenient for its evolution.

Accordingly, I intend to hold back on a new release for a little while, until I've made the bulk of the 
core engine changes to facilitate all of the above. The idea is to have one "break everything" release, then move 
forward from there with a stable and well-defined architecture. No doubt your custom types will need to be 
recreated, and any custom modules may well require some tweaking too - but the changes will give us a solid base 
from which to move forward.

Thistle has a lot of potential. Even as it is today, it allows significant flexibility in the creation of a part-static, 
part-dynamic website. It's much more than a blogging tool, but it already measures up well against the other blogging tools 
out there, including some of those which require database backends and/or Perl. And there's much more to come.


So, Thistle will change. I make no apology for this, because the reason I 
<a href="">first got into this</a> was 
to create something more than a blogging system; something that had leanings towards both Content Management and other 
types of database-driven site - only without the database, and with far more everyday requirements. I have a vision of 
how Thistle can become that "thing", and I plan to continue to follow it.