Watch the interview to:
- Learn how to get started on WordPress with no or limited technical knowledge
- Get advice on choosing a hosted service versus hosting your own WordPress
- Hear what the future looks like for WordPress
- Discover the advantages of joining the WordPress community
Stuart Langridge: These are the Bitnami Open Source Leaders series of interviews. I'm Stuart Langridge, and I'm talking to Siobhan McKeown of the WordPress Project.
Siobhan McKeown: Hi Stuart.
Stuart Langridge: What is WordPress? I suspect that most people listening will have a reasonable idea but it would be useful to hear your description.
Siobhan McKeown: WordPress’s most basic description is a publishing platform. It uses PHP and MySQL. It started out as a blog platform more than 10 years ago, but over time became more used as a CMS. Now it is used much more as a CMS than as a blog. Also, more recently it's being used as an application framework.
Stuart Langridge: What's a typical WordPress user like, or is your community so diverse that it's really impossible to say?
Siobhan McKeown: It's really diverse, and there are so many different types of people using it. The great thing about WordPress is that it's very user friendly and focused. Although it has become more complex over time, it's quite easy for people who aren't technical to use. We do have a lot of people using it here who have no idea what PHP is, but they can use it really well. And then we also have people who are hardcore developers and are doing all sorts of fancy stuff with WordPress. It's hard to pin it down because I think it's more than 23% of the Internet now, so 23% of the Internet is a lot of different types of people.
Stuart Langridge: That's outstanding. A quarter of the Internet is WordPress. Goodness gracious.
Are there particular areas where you'd like to see WordPress being used, or is it basically everywhere you'd like it to be?
Siobhan McKeown: We want to make it easier for developers to work with it, so we're working on a JSON-REST API. With it, people will be able to use WordPress without even using WordPress at all, and it's exciting to see people using it as an out framework rather than just a straightforward CMS. For example, there's a service called App Presser that let's you make mobile apps with WordPress, so we're starting to move slowly in that direction beyond just being used to manage content.
Stuart Langridge: In talking about JSON-REST API there, how does that differ from the old MetaWeblog API?
Siobhan McKeown: Actually I'm not in development, so I don't have a good answer to that question.
Stuart Langridge: That's okay. People used to have the XML-RPC API and I'm sure that you're not in a position to properly deprecate it yet, but it does feel like a thing from 2004 rather than now.
Siobhan McKeown: Yeah, I think people are really keen about moving beyond this, so a lot of work is been put into the REST API. I think it's going to make it much easier for developers to use WordPress.
Stuart Langridge: If I am looking for something to run my simple website, and my criteria is that it's open source, free, and has a large community- I might need to work with WordPress. If I've got a more complicated site, I'm more likely to look at CMS types like Drupal. Is that a fair comparison do you think? Are there particular areas where you'd say WordPress or Drupal, or do you think there's just complete crossover at this point?
Siobhan McKeown: I think there's a pretty good crossover, and that's a perspective that's a hangover from WordPress's past as a blog system. When we started we just had posts and pages, but since WordPress 3.0, people have really started using things like custom post-types where you can create different types of content and create custom taxonomy. This made it much more CMS-ish, and much easier for people to build complex websites. Now, there is development to make it even easier over time for people to make much more relational websites.
Stuart Langridge: You mentioned that there are people running WordPress who have no idea what PHP is, which is great. What would you say is the required level of technical knowledge to run WordPress? What type of expertise or experience would you expect someone running a WordPress site to have?
Siobhan McKeown: You can start without any. I had none when I used WordPress, which was about five or six years ago. My husband uses WordPress and he is not technical at all. We really want to make it easy for as many people to use as possible, and I think that has worked because 23% of websites are running it.
If you're going to be running a high performance website with loads and loads of traffic, then yes, you're going to need more technical knowledge on top of that. However, if you just want to install WordPress and start using it, you need very little technical experience.
Stuart Langridge: And obviously there's the distinction between running your own WordPress and using a hosted WordPress service. Do you have a percentage of people who are running their own WordPress versus those who are using their own hosted services?
Siobhan McKeown: To be honest, I don't really know. I tried to get some stats, but I wasn't very successful.
Stuart Langridge: If someone were thinking about building a site on WordPress, what would be the criteria for hosted service or hosting their own? How would you help them decide?
Siobhan McKeown: They really need to think about what kind of site they want to run by thinking about how much web traffic is anticipated on the website, and how much work they’re willing to put into scaling the website. If you don't want to even think about that then you might want to go with a managed WordPress host because they are doing all of that scaling work for you. However, you also need to think about how much control you want over your website. Some of the managed WordPress hosts don’t give you access to your database and there's much more strict controls over your website. You've got to really sit down and think about all of this to figure out what you need.
Stuart Langridge: That's a reasonable point. I think a lot of the hosted WordPress hosts tend to restrict you in things like which plug-ins you can install, which themes you can install, and that sort of thing.
Siobhan McKeown: Exactly.
Stuart Langridge: You mentioned scaling, if I'm going to run a site that becomes huge, how do I scale my WordPress instance to meet demand?
Siobhan McKeown: WordPress is going to scale, but it depends on your environment. If you go to a shared host, you're not going to be able to scale. My website is actually on a shared host because I don't get any traffic. It's just part of your overall stack, so you should think about the type of hosting that you use. You might want to use a VPS or cloud hosting, I think Bitnami uses AWS, is that correct?
Stuart Langridge: Bitnami deploys WordPress to a bunch of different clouds. I've deployed WordPress to Microsoft Azure with two button clicks, which was rather fabulous.
Siobhan McKeown: Once you get all the traffic, you're going to start thinking about things like EngineX. You can also use HyperDB from Automatic, which is good for sharding and horizontally scaling the database.
WordPress has built in object caching, which you can use to create a persistent object cache and reduce your database load. That is one of the biggest bottlenecks you're going to get, and it's going to cause your website to slow down.
Stuart Langridge: What's HyperDB?
Siobhan McKeown: It lets you shard it across different databases, and break out your databases across different servers.
Stuart Langridge: Is that a drop-in replacement for MySQL, or is WordPress now able to talk to two different database backends?
Siobhan McKeown: No, it builds in some of the WordPress built-in database functions. It lets you use multiple databases, and it replaces the WPDB class. So, you can use as many databases as you need and Automatic uses that to start scaling really big sites.
Stuart Langridge: You mentioned cloud hosting environments as AWS, Rackspace, HP Cloud, etc. Are you seeing lots of people deploying WordPress into that kind of environment?
Siobhan McKeown: We are seeing that a lot of the hosting companies offer their managed hosting – is that what you're referring to?
Stuart Langridge: Yeah, there are two different flavors of that. You've got, “ I'd like to install WordPress myself, but I'm still hosting it on an AWS server or an Azure server”, and then you've got a more managed enviroment, like a WP engine.
Siobhan McKeown: Yeah, you probably know more about the steps than me to be honest. I don’t know exactly how many people are doing it.
Stuart Langridge: What makes WordPress good for that kind of environment, or is it just good in all environments?
Siobhan McKeown: It's good in all environments because WordPress is hookable right down to its core. You can replace the internals with things like S3s to deliver your images. For example, Jetpack has Photon, which is a CBM for hosting your images on WordPress.com. You can really do this in a qualified/targeted fashion, and you can swap your entire file system for something like S3 if you wish.
Stuart Langridge: So it can all be swapped at every layer of the stack?
Siobhan McKeown: Yeah it can. If you just want to host it on your own server, and then just use Amazon for delivering the assets you can do that, and that is going to start speeding up your site.
Stuart Langridge: Let's talk about the release strategy and the cadence of releases and so on. How often does WordPress release?
Siobhan McKeown: We aim for about every three months, so it's pretty fast compared to other pieces of software.
Stuart Langridge: When you say you “aim for”, does that mean it just releases when it is done or for sure every three months?
Siobhan McKeown: No, we aim to release feature releases every three months. We have deadlines and we try very hard to stick to them. Since WordPress 3.7, we actually have been really good at meeting those deadlines. Between that, we also have the minor releases such as bug fixes and security releases.
Stuart Langridge: That makes sense. In terms of upgrading, what's the best way of taking advantage of that? Obviously you've got the WordPress Admin itself that will tell you when there's an upgrade. However, the convenient “click a button” in the Admin requires that the WordPress files themselves are writeable by the web server. Is that the recommended approach, or would WordPress recommend a different way of doing upgrades?
Siobhan McKeown: Now for minor releases, we have automatic upgrades so you don't need to do anything at all, which came out in WordPress 3.7. We push minor releases and security fixes straight out to WordPress users, so they don't have to do anything.
Then of course, you have the button that says “ Update now”. I always just click the button, but I think it depends on the type of site you're running. If you're running a small personal site like mine where you're writing blog posts, I think it's pretty straightforward to do that. If you have a really complex installation, you should start doing it manually.
Stuart Langridge: As you've mentioned a lot of people are providing WordPress hosting such as DreamHost and DigitalOcean, not just dedicated places like WP Engine, that allow you to easily launch WordPress. Would you recommend that people use those packages provided by their host, or would you recommend that people actually download from WordPress.org?
Siobhan McKeown: It really depends on what you need. I really like the handiness of a one-click installer because you can just double click it and you have a website!
Although, you do have more control over manual installation. Some one-click installers come with plug-ins installed beforehand, so your host makes those decisions for you. If you really want to have a lot of control over the website, we recommend doing it yourself. It's a five minute install.
If you're not a technical person, the idea of using MySQL database and FTP might seem a bit scary, but actually it's quite empowering to start learning how to do it. I would really encourage people to try it out.
Stuart Langridge: Let's talk about the WordPress community, which is enormous. If I'm using WordPress for the site for my organization, do you think that I should be participating in the community beyond asking for technical support? What will I get from being part of the larger WordPress community?
Siobhan McKeown: “A lot” is the short answer. It's a great community to be involved with. For one thing, if you start contributing code to WordPress, you have code running on 23% of all websites, which is a pretty powerful thing to think about. I submit every so often using fixing tech changes, and it's quite exciting to me to know that I'm having an impact on people all over the world.
Also, you're going to learn from extremely smart developers who will give you feedback on your code. If you're a freelancer, this is a really good way to start honing your skills. Also if you have a bunch of employees, it's free training for them. Their patches are going to get reviewed by the WordPress developers, and they're going to get feedback and get better as a result of that.
You'll also find that when contributing to the WordPress community, you can raise your rates. You can continually raise your rates as you become more and more prominent within the community. You're really able to sell yourself as a WordPress expert if you are contributing to the project, not just contributing to the codebase, but by helping on support forums or helping write documentation which is where I started out.
Also, you get to know what's coming in the next versions of WordPress, which helps you plan. It's really useful to be part of those discussions and have a voice within those discussions. A lot of agencies now have people who contribute to WordPress actively, and the agencies will participate in all the discussions going on around WordPress.
From your contribution, you get lots of referrals from people in the community, which is great. Everybody wants a good WordPress developer, and if you can make those connections in the community, you're going to start seeing people passing work onto you. Apart from that, it's also really good fun, and there are a lot of really good people who are fun to hang out with.
Stuart Langridge: One of the big parts of the WordPress community is the plug-in development side. There are thousands and thousands, but there's also a fairly high level of drop off. If you go searching for plug-ins, you'll find they don't work with the latest version of WordPress because it's also quite difficult for developers to keep up.
WordPress will warn you, if you go to install a plug-in, that it's not been tested with the latest version of WordPress What work are you doing to ensure that plug-ins don’t have that high level of drop off?
Siobhan McKeown: This is a problem when you have third-party extensions for your product. People will put them out there, and they'll lose interest in continuing to supporting it. It's a shame because you see a lot of really good plug-ins that say they don’t work or they're out of date for this version of WordPress.
One thing we did do for users is that we hide them in the Admin. For example, if you're searching for plug-ins from your WordPress administration screens, you're not going to see anything that's over two years old. It’s something we discuss, but I don’t think we have a great solution to it yet. There are so many plug-ins in the repository and not all of them are up to date, and how we going to fix that is certainly a challenge for us.
Stuart Langridge: Where is WordPress going next? What are the plans for the next couple of releases, the next year, the next five years? You're already at 23%, how much higher can it go?
Siobhan McKeown: It’s going up steadily all the time. I wonder if we're going to reach a point where it can't increase anymore, but I really don’t know.
I mentioned the REST API earlier, which we hope is coming in 2015, and I think this will really transform how people interact with WordPress. The other thing that we have started doing in the last few releases is using the WordPress plug-in framework for feature development. Features are now developed as plug-ins before they're developed as part of the WordPress core, and this is quite a big change for us. If you look at the feature plug-ins that are listed, you can get an idea of what's coming in WordPress.
There's been lots of experimentation with Tiny MCE to create a front-end editor. I think this would be fantastic if the users didn't have to go into the backend to edit.
Definitely, the other challenge is mobile. WordPress is built for a desktop, and we're really working to improve it on a mobile. I don't think the experience is there yet, and we want make it so that people can use WordPress on every device.
Stuart Langridge: That's interesting. You mentioned Jetpack earlier and that seems like a good example of something being developed as a plug-in to provide things like a better mobile layout on statistics, and then presumably get folded into the core.
Siobhan McKeown: Jetpack, no. It is a plug-in developed by Automatic, which has lots of different modules that do different things. It has everything from style checking, Photon, to mobile themes. I don't use it on very many sites, but I think it’s for delivering a front-end experience. I think Jetpack is a great plug-in. It's got lots of stuff that people love to use. However, it is spearheaded by Automatic, so it would not be something that would be folded into core.
The things that we need to get WordPress working are actually in the back end and the Admin. We have made big steps toward that and we have made it responsive, but we are trying to hone that overall experience.
Stuart Langridge: One of the things that has perpetually amused me about the WordPress project is that you're very firm about the typography. It's WordPress, capital W, capital P, and no one cares. Everyone just spells it with a lowercase P. Short of going around and knocking on everyone's door saying please put the capital P, do you plan on fixing this?
Siobhan McKeown: Some people will mention it, and we also have a function in WordPress itself, which capitalizes the P. If you put in the lowercase P in WordPress, it will capitalize it. I noticed that in the WordPress community we CamelCase absolutely everything. I will have words that should not be CamelCase and I'll CamelCase them. For example, Microsoft will have a capital S in it, which is just a weird by-product of working in WordPress because you’re always thinking about that capital P.
Stuart Langridge: Thinking about your involvement, I understand that you're writing a book.
Siobhan McKeown: Yes, that's correct.
Stuart Langridge: So what's that about?
Siobhan McKeown: It's about the history of the project even before WordPress to B2, which is the software that was forked to create WordPress (a small blogging platform that Mike Little and Mallo Mike were using back in 2003). The book is about the development of the project, and how WordPress has got to be where it is today as well as the emergence of the philosophies behind WordPress, which over time became more and more concrete. I think it’s really important to know how the software is developed into the project such as the different features, things that worked, and things that didn't work.
Every open source project has its own challenges, and it's really interesting to see the fault lines along which conflict occurs and how things are resolved. I think the bizarre model of development gets so many voices coming in and so many people thinking about diverse opinions. I find it fascinating to see how those things are managed. It's a piece of social history as well as a piece of software history.
Stuart Langridge: If people wanted to find more about WordPress, where should they go?
Siobhan McKeown: WordPress.org is the home of the open source project. You can find information there, download the software, get support, and you can get documentation. Also, I recommend you click on the tab that says “get involved”, so that you can learn more about how to actually contribute to the project.
Stuart Langridge: Thank you very much, Siobhan McKeown of WordPress.