Ryan Cramer is the founder and lead programmer behind ProcessWire, the winner of our Critic's Choice Award for Best Free CMS. Earlier today, we took time to speak with Ryan about ProcessWire, the future and his thoughts on the CMS market. Without further adieu, here is the interview.
Can you tell me a bit about how ProcessWire came to be?
ProcessWire has been a project since around 2003, though under a different name. None of the original code base remains as the system has evolved. But if you used that old system, you'd still recognize it as ProcessWire. The overall architecture and hierarchical page tree is very similar.
ProcessWire came about from my own needs as a web designer/developer. Before ProcessWire, I had already been building custom CMSs for various clients for several years. Open source CMSs weren't really on the radar, though there were a few like Moveable Type.
When I started working on my own as Ryan Cramer Design, LLC, I needed a tool to help solve the common recurring needs for projects. So I kind of looked at ProcessWire as like an employee, someone (rather something) to take care of a lot of hard work so that I could get more time and enjoy the work day more.
This continued for 7 years, and ProcessWire continued to evolve. I had always wanted to get involved in open source, and didn't really know how. I didn't know how ProcessWire would be received, so I instead focused on getting a little part of it released as open source. This was a jQuery plugin called asmSelect.
That was pretty well received. In fact, it ended up as a Drupal module (apparently) and I'm assuming elsewhere. So that gave a little necessary confidence to put the whole thing out there.
It was originally called Dictator CMS. The website is still there: http://www.dictatorcms.com/. For while, I was developing both as separate projects (around 2005-2007) but that was mainly because I had clients on both platforms, and you couldn't swap one in for the other. So I had to continue maintaining Dictator CMS for quite a while after new installs were no longer being done.
Dictator was not open source. At the time, the clients (or at least my clients) did not want open source and were scared by it. I'm very glad that attitude has reversed.
The name came from an old Thomas Edison machine but between Saddam, Khadafi, North Korea, etc., the name started evoking the wrong things.
Does ProcessWire have any backers or financial support? How does it earn money or does it?
Backers of financial support… probably not in the traditional sense. But we do have some support. Avoine is a company in Finland, and they provided some support for development of multi-language support, between the release of ProcessWire 2.0 and 2.1. Also ServInt (the hosting company) supports ProcessWire by hosting our site. I saved for many years to be able to dedicate lots of time to it. Now we've got lots of people dedicating time to it, so I feel like we are well supported by people's time.
Are there any plans to commercialize (not sure if that's the right word) any portion of ProcessWire or add commercial services, hosting, etc?
Not commercialize the software itself, but we do support commercial services, whether support, custom module development, or the like. We also encourage commercial module development, as I think it is beneficial for the perception of the project and for attracting the interest of full-time developers.
Hosting is one thing we've not looked into, but perhaps should. Ultimately though, most of us get paid by the work that we do with ProcessWire for our clients. ProcessWire saves lots of time and lets us be more competitive web developers.
Recently, ProcessWire won our Critic's Choice Award for Best Free CMS. Has this helped with exposure? What have you seen as a result of this award?
Thank you for highlighting ProcessWire with the award. I do think it has been great for the project and exposure. It brings new people to ProcessWire (I think you may be our biggest referrer in Google Analytics), and it's also great to be able to communicate this to people. It also energizes the whole team. I think I could go on and on. We appreciate this exposure for ProcessWire more than I can find the words to describe. Lots more people searching for “ProcessWire” on Google too, it seems.
What do you think makes ProcessWire such a great product for developers / designers. There are lots of products on the market that are great choices, why ProcessWire?
I think ProcessWire is a great product for designer/developers because it's developed by people who are full-time designer/developers that are focused on constant simplification and reduction to essentials. It's developed in the field, so to speak, according to the actual landscape. It fits to the environment and the needs like a glove.
ProcessWire becomes a tool to designer/developers much like other tools they may use. Much inspiration has come from jQuery. And I like to think that ProcessWire opens up content management in the same way that jQuery opens up JavaScript. ProcessWire is built to be simple and easy, but it's also built to be extremely powerful and scalable. Lots of people initially confuse it with being something very small and simple for basic needs… and it can fit that role just fine. But it really shines when you throw a really big project at it. The system scales without getting more complex, while saving you huge amounts of time. There isn't any other system that nails it as well as ProcessWire.
The way I sometimes describe ProcessWire to my clients on terms they can understand is to describe Google's search engine. You have something that appears to be very simple (just a search box and interesting artwork/logo). There is much more power and capability than it would appear. Yet it remains accessible to all, and what you can do with that simple interface grows as you do. It's a simple and easy interface to powerful engineering–that's always been the goal.
What is the most complex in size or scope, project you've seen implemented with ProcessWire?
That's a good question. For a long time, my own sites were some of the biggest and broadest in scope, that had been built-in ProcessWire. Now, others have gone far beyond that. I was recently helping someone optimize ProcessWire selector queries for a site with more than 100k pages in it. Now that's a big site, though I imagine there are people going beyond that too. ProcessWire doesn't get more complex as you go larger. It stays simple, and it's meant to scale as far as you would like it to.
What is the most under appreciated feature in your eye?
That's a tough question, but I think some decisions behind the admin interface are often misunderstood, at first. When I first put ProcessWire out there, people were emailing me their mockups of fixes to things that they perceived as a problem. For instance, the way the page tree works is one of them– It might seem overly minimal when you are initially testing it out on a small site. Yet when you are working with those sites with several hundred to thousands of pages, a lot more becomes apparent. The most “pretty” solutions are no longer good solutions. So I don't know about most under-appreciated, but I think the most misunderstood aspects of ProcessWire relate to the underlying goals to provided consistency across all scales.
Btw, many other admin themes are now available for ProcessWire too (many that are really fantastic), so this misunderstanding is much more rare now.
What do you think ProcessWire is missing in terms of either features or functionality that you'd like to change / add?
That's also a tough question because I'd like to simplify as much as I would like to add, so we have to balance the two. We have to make sure that as the system grows, it doesn't become any more complex, and hopefully, becomes simpler. The way we do this is by taking complex things and building them as modules. So they aren't adding any complexity to the system unless one has the need for that complexity.
An example: ProcessWire doesn't provide out-of-the-box capabilities for enabling things like user registration in the way that systems like Drupal do. We provide the API to make these things possible, rather than having them turn-key. There are some people that benefit by going the ProcessWire way and building these things exactly the way they want them to work. There are others that benefit more from turn-key solutions. I think that having turn-key solutions is very important, as the growth of WordPress proves. So I'd like us to continue building more turn-key solutions as modules for ProcessWire, while continuing to simplify the core.
How about eCommerce capabilities, have you seen any integrations that have been impressive? Are there specific modules that makes this possible?
Antti Peisa is maintaining a ProcessWire Shop module project, and I think he's done some impressive things here. I don't have experience using it myself, as my e-commerce needs are fairly limited. But there is a lot of positive discussion about this in the forums and I'm quite impressed by what he's done with this. For my own client work, e-commerce is one of the things that I really like to send to a dedicated service provider. That's because after running osCommerce and Drupal UberCart for years, I've come to see e-commerce as one of those things that is always threatening to take over my day for one little issue or another. So I just prefer to hand over my ecommerce to Shopify (or other dedicated ecommerce providers). I particularly like Shopify for their post order hooks. It integrates beautifully with ProcessWire and enables me to create ProcessWire accounts for users after an order is successfully placed, etc. So much potential in easy reach. All the fun without all the time and frustrating trying to self host an ecommerce software.
Basically, I'm not the best one to ask about e-commerce. OSCommerce and UbertCart (among others), as great as they are (or were) soured me on wanting to self host these things. But ProcessWire itself is a great module platform from which to build ecommerce modules, as Antti has proven.
What can we expect from the next major point release ? Any specific new features you are working on ?
ProcessWire 2.3 is just around the corner. Here's a partial list of what's coming with that: http://processwire.com/about/news/feb-2013/#article4
What do you see for the future of ProcessWire? Say, next 5 years. What would be your ideal scenario?
ProcessWire 2.4 will emphasize adoption of PHP 5.3+ specific features, so we'll be dropping PHP 5.2 support with the next major release, while gaining all the great things that come from being able to focus on PHP 5.3+
More info about that in the roadmap here: http://processwire.com/about/roadmap/
Next 5 years: I'd like to see ProcessWire continue to grow in audience. I think we're just at the top if the iceberg in terms of audience now, as we're still relatively unknown. So I think there is just a whole lot of room for growth. Currently we have a really strong platform that I'm very proud of. But in 5 years, we will be 10-years better. We're on a constant path to improvement and won't rest as long as there is room for improvement. And there's always room.
Why do you feel open source was the right way to go when it comes to PW? What about open source made it a good choice?
First off, I have benefited so much from open source that I wanted to give back. I think that anyone that spends years as a web designer/developer develops a strong bond with open source. So as a web developer, when you reach the point where you think you've got something to give that is really better than what's already out there, it's an honor to be able to do.
Secondly, I thought that ProcessWire had a lot of good ideas in it that would never see the light of day if I didn't get it out there. I'd put a lot of work into it and getting paid license fees or getting big projects from it just wasn't satisfying enough. I felt it needed to be open source in order for the ideas to make a difference. Proprietary CMSs don't have a future anymore.
What types of changes would you like to see within the CMS market?
I think there is a real over-use of the “big 3” systems (I won't name them). These systems are the right fit for some projects, but the wrong fit on so many more. Often they are used simply because they are known… they are the one that the boss will recognize, so no questions will be asked (playing it safe). This makes for a weaker and less diverse web. I would like to see the whole idea of “big 3” disappear. My hope is that a few years from now there will be a much greater understanding of all the different options out there.
What does the term CMS mean to you personally?
To me a content management system is two things: 1) a system that enables the client to create and edit content in the context of a web site or application; and 2) a system that enables the developer to design the content structure and layout, and build on top of it.
Thanks for your time today, Ryan. I appreciate the opportunity to speak with you.
Thanks again for inviting me to do this, it's a real honor.
You can find out more about Ryan (or hire him!) by visiting his website http://www.ryancramer.com or check out ProcessWire at http://www.processwire.com