Lights… camera… action!

In true Golden Globe style, it’s time to introduce the core concepts behind Textpattern 5. Take your seats, it’s going to be a wild ride.

Among the speculation and hints on the forum about the direction of Textpattern 5, we thought it was about time to open the envelope and reveal all.

And the nominations are…

First of all, we would like to welcome Jeff Soo as a core developer. Jeff has been an avid plugin writer, patcher and Textpattern tester for a while now and brings a wealth of programming knowledge and skill to the team. And, as you know from his forum posts, he’s a jolly fine man. We’re very much looking forward to working with him.

Best picture

Secondly, we have decided to take the huge step of modernising the core from its humble origins into a 21st century application. Namely, utilising the MVC (Model View Controller) pattern.

Over the last eighteen months, Sam has been very busy creating his own CMS (Escher) from the ground up, which is built on a custom, lightweight MVC framework called Spark/Plug. We are going to adopt Spark/Plug for Textpattern and build on its considerable, yet slender, shoulders.

Best performance

To anyone who’s shrugging/shaking their head in bewilderment, the benefits of modernising Textpattern’s core code include, among other things:

  • greater flexibility/extensibility
  • more power to plugins
  • increased performance via public-side cacheing
  • public-side templating/theming

And Spark/Plug will accelerate our ability to do all of the above. We’re pretty excited about what this means for Textpattern as a platform. But there’s a catch.

Uh-oh? A catch?

Yes. It’s a lot of work. And all the while we’re moving the codebase across to the new framework, it may seem like little is happening in terms of the end-user features we all want. Especially given that we don’t have infinite time to devote to our beloved CMS between day jobs and life.

Best direction

We agonised for ages on how to approach this before reaching the following plan.

  1. Textpattern 5 will be developed in phases:
    1. The admin side will be moved across to Spark/Plug.
    2. A compatibility layer will be built to help plugins, templates and sites work under the new framework. Plugin authors can then adjust their code to fit the new paradigm and the layer will eventually be removed.
    3. The admin side will be given a facelift to improve workflow.
    4. The public side will be migrated to Spark/Plug, along with a new default template.
  2. The dev workload will be split:
    1. Robert (primarily) will continue to drive new features into the existing codebase ready to move the application across when the framework is ready.
    2. Sam, Jeff and Stef will work on migrating to Spark/Plug and putting the compatibility layer in place.

This is going to be a pretty major undertaking, and we would like your help. To that end, we will be moving to Mercurial for Textpattern 5 and later. We are looking for as many people as possible to help us transition the codebase to Spark/Plug and encourage you to clone the repo and publish your contributions so we can rapidly merge them into the core. The quicker we can do this part, the sooner we can fold Robert’s work into Textpattern 5 and start adding the new features you’re all asking for.

Sam will be posting a quick howto for accessing the new repo in the near future, so watch this space.

Best community

We really would like this to be a true community effort. We’ll co-ordinate things from here and the forum, and regularly publish who’s doing what to minimise duplication of effort.

So if you’re interested in taking our little CMS from the shadows of historical review into the bright light of tomorrow, please get in touch, get involved and get coding. Thanks!


  1. Welcome to Jeff – this is great news for Textpattern and it was clear for a long time that we needed someone with his skill and dedication.

    And great news that TXP is moving to an MVC platform! Woo-hoo!

  2. So it’s time to fork ? and keep TXP4 for the sites I have to maintain with it.

    Why yet another MVC framework? How many are there in PHP, >100?

    That’s a task similar to what ExpressionEngine did, and remember how long it took them as a company with a bunch of payed full time developers to get EE2 out.

    This can’t be done with a hand full of volunteers. The obvious way to do this would be taking an existing MVC framework backed with more then one developer and build TXP5 on top of this. It’s just a Blog/CMS, I don’t think Textpatterns requirements are so special that none of the existing and well maintained frameworks could be used.

    I guess this is the beginning of the end of Textpattern. ?

  3. Welcome Jeff to TextPattern Team! Wish you all the best!

  4. Great news all round. Congratulations Jeff!

  5. Wow! This seems to be a huge task! It seems you guys have thought this through!

    Very, very impressing and I wish all the programmers good luck and not too many sleepless nights.


  6. This is very interesting news and I welcome Textpattern’s move to an MVC framework. However, why choose Spark/Plug?

    I love forward to seeing Sam’s future post on the repo.

  7. @All: Thanks for the encouraging words. I’m excited to be the newest member of the gang of code-stained wretches that is the Txp dev team.

    @Ralf G: I prefer to think of it as the end of the beginning. I’ll have more to say back at the ranch.

  8. I can hardly wait. I guess this is all an UX designer have to say about this announcement.

  9. Sounds big.

    I’m assuming we’ll be able to upgrade our sites like business as usual when the time comes?

    Great to hear Jeff is on the team!

  10. @Destry: yes and no. It is certainly our intention to make upgrading easy. But plugins are a complicating factor. Our focus will be ensuring that a core upgrade is seamless, and collaborating with plugin authors to make the entire process smooth. But with legacy plugins it’s hard to say at this point.

  11. TXP has the best community online by far. That and talented, committed developers make it of the greatest tools to work with.

    Keep up the great work, we have your backs.

  12. Well this is good news! So gratifying to see TxP evolving yet again to a modern CMS development platform: MVC framework called Spark/Plug.

    And a big welcome to Jeff and my thanks in advance for taking this on and contributing to TxP5. And a big Kudos to the whole team! Happy Trails and be Happy in your Work!

    As a current EE user and one who is still on version 1,7.X ( i have yet to use 2.2 as i am very busy dealing with a couple of TxP based sites) I was never impatient with the fact that it took EllisLabs so L o n g to get 2.0 out the door. I had no need to be worried as i was still able to get what i needed from 1.x.x. ( I am doing private project in 2.2 in order to learn and practice)

    When it comes to TxP5… I’ll look forward to the the new capabilities and feature sets that come along. A new Improved TxP V.5 will be most welcome.

    I suspect that in terms of adopting / migrating to TxP5 i will take the same approach i did with EE. Only upgrade those sites that don’t have heavy reliance on plugins first.

    Develop new sites in the new version.

    Then migrate older TxP versions to the new one as plugins get updated.

    Once again a big welcome Jeff!

  13. Exciting news.

    In honesty I haven’t worked with TXP for a while, preferring WP due to the better potential for plugin development (just my opinion, no need to flame!).

    This had me pricking my ears up in anticipation! Looking forward to playing with the new version.

  14. Glad to hear Jeff is now a Dev – feels like a very natural choice.

    TXP + MVC = Awesome!

  15. Congratulations Jeff.

    Wonder if there are plans to expand the team any further?

  16. I am delighted with the direction of TXP5 on several counts.

    # the current crop of devs offer an unprecedented level of willingness to collaborate and entertain new ideas. They listen to the community

    # the aptitude and productivity of the current dev team is simply awesome

    # I wish I could contribute code, but probably the best contribution I can make will come in the form of ideas for improvements based on having about 40 sites/clients where TXP is installed and sharing the things that don’t make sense to lower level users.

    -Trully excellent news.

  17. I’m glad that you’re finally taking the MVC route, but I have mixed feelings about using a young MVC framework and approaching testing with apparent naivety.

    Just one question that has been bugging me for a long time now: why not use Ruby with something like Sinatra and all the rack goodness that comes with it? You have gems, half a dozen super-scalable servers like thin, unicorn, passenger, mongrel 2, more battle-hardened db adapters than you can shake a stick at and the sweetest deployment process the world has ever seen.

    If I take a few hours to put together a TXP look-alike which will have a similar performance to Escher, will you seriously consider it?

    Regardless of your answer, I would like to add my testing experience to the TXP 5 mix. Give me something to fork and I’ll unleash the cucumber ; ).

  18. Re Ruby: availability is not, in itself, “a great excuse to not consider …” switching. But it is a factor to consider. Much more significant is that switching to Ruby would, at the least, make for a painful upgrade path for Txp 4 sites and plugins. That reason alone makes the idea a non-starter, in my view.

    Re @Gerhard, testing and naivety: speaking for myself only, maybe so. But whatever testing we come up with will be a step forward from Txp 4. Glad you’re willing to help.

  19. Re: net-carver’s wondering about team expansion.

    I think a few things would lessen your need to expand the core team:

    1. Utilization of a platform/repository for development such as github or bitbucket that makes it easy to contibute.
    2. A definitive roadmap & issue/tickets area that makes it easy for potential contributors to figure out how they can best contribute.
    3. Quick feedback from core developers on changes submitted by contributors (accept, accept with stipulations/changes, or reject)

    These would greatly help the developer portion of the txp community feel that contributing is possible.

  20. this is test thread?

  21. thats sounds great, becouse so far frustrated by loking the same old admin panel :)

  22. @Walker: We’re going to stick with Google Code. However, we’re moving to Mercurial for Txp5. I hope and expect that this will make contributing easier and more rewarding. Indeed, I think this has the potential to largely erase the distinction between core dev and contributor. You’re right that this will depend on dev feedback. I make no promises, other than that I will try. I know from experience that it is frustrating to submit a patch and not get any feedback — not even a simple, “Thanks, but we can’t use this at this time”.

  23. I care very little for the new tech behind TXP5 (though I’m sure it’s all very good), just as long as the following admin-usability points are addressed:

    1. The ability to add an image to an article without expecting end users to learn TXP code
    2. Very basic formatting tools baked in (bold/italic, heading, etc)
    3. User permissions that actually make sense (such as a level which allows someone complete control over content, and no access to presentation)

    TXP functions great from my end putting a site together, but falls in a heap when trying to give a novice the reigns of the admin side.

  24. @Simeon: thanks for the suggestions. Each of the items you request is available via existing plugins. The “lean core” philosophy is very important to Txp, so I don’t see adding items #1 or #2 to core. Item #3, permissions, I would like to see more options or flexibility built in as you suggest.

  25. @ralf – The reason there are so many PHP MVC-based frameworks is because it is so trivial to implement the MVC design pattern in PHP5. Any intermediate programmer versed in PHP should be able to whip up a rudimentary application based on the MVC pattern rather quickly (without the aid of a pre-built framework).

    I, for one, would rather see Txp develop an MVC-based core specifically designed for the needs of Txp than utilize some bulky, generic framework with a load of superfluous junk. So I hope that is the aim when the article mentions “adopting Spark/Plug”…

    Either way, I am glad to see the new direction. I enjoy the utility of Textpattern, but the mash of spaghetti code in the source makes me cringe (no offense) sometimes.

  26. Welcome Jeff and glad to know that TXP’s new features!

  27. Congrats Jeff. I know you helped me a lot with all my demands on the image plugins you wrote so you MUST be of great help for the others TXT developers.

Commenting has expired for this article.