PHP Lessons - Part 3 - Creating Your Own CMS
Creating websites on CMS platforms is not limited to Drupal, Joomla, and WordPress. In fact, most websites in the world are built on custom CMS solutions. Even though a lot of PHP code has already been written, developers often prefer to use their own tools. Let’s try to understand why you might want to build your own CMS.
Yes, there’s Drupal—a powerful system with a large number of modules, hooks, and functions for building custom modules. Many know how to write their own modules, but let’s take a look at how many people are actually involved in creating Drupal itself. You’ve probably heard that Drupal is the work of hundreds or even thousands of developers. But let’s actually see who develops Drupal.
On the Drupal download page, there’s a section listing developers who contribute to the Drupal core—that is, the CMS itself.
drupal.org/node/3060/committers?sort=desc&order=Commits
And on this page, you can find a list of developers and their submitted core patches. Here's a sample:
Developer | Last Commit | First Commit | Commits |
---|---|---|---|
Dries | 3 days ago | 11 years ago | 10501 commits |
webchick | 5 days ago | 3 years ago | 3108 commits |
Gábor Hojtsy | 2 days ago | 4 years ago | 1635 commits |
Steven | 4 years ago | 11 years ago | 1156 commits |
drumm | 1 year ago | 5 years ago | 764 commits |
killes@www.drop.org | 4 years ago | 6 years ago | 506 commits |
Kjartan | 5 years ago | 11 years ago | 383 commits |
catch | 2 days ago | 21 weeks ago | 329 commits |
Jeroen | 10 years ago | 11 years ago | 101 commits |
Git Migration | 1 year ago | 10 years ago | 38 commits |
jhodgdon | 2 days ago | 3 days ago | 3 commits |
quicksketch | 16 weeks ago | 16 weeks ago | 3 commits |
pillarsdotnet | 23 weeks ago | 23 weeks ago | 2 commits |
Let’s go through some names:
Dries (10k commits) – full name: Dries Buytaert, founder of the Drupal project. As you can see, Drupal is more than 11 years old. Dries founded Acquia, a company that provides technical support for Drupal websites (which is not free, unlike Drupal itself), as well as development for Drupal core and contributed modules. In an interview, Dries mentioned that he no longer writes code for Drupal himself, focusing instead on managing Acquia. The large number of core commits can be explained by the fact that others submit patches and he simply merges them.
webchick (3k commits) – full name: Angie Byron, a key developer for Drupal 7. She worked (or still works?) at Lullabot, although her Drupal.org profile suggests contacting Acquia if you'd like to hire her for your project. Angie also created Drush, a command-line toolset for Drupal. Today, she remains one of the top Drupal developers.
Gábor Hojtsy – full name: Gábor Hojtsy, one of the lead developers for Drupal 6. He also worked on internationalization and translation features for Drupal 7.
Of course, there are other core developers who contributed specific parts to Drupal. But these three are the main ones. So, although people often say Drupal is the work of thousands, the core itself is maintained by a small group. Even huge CMS platforms can be built by just a few people.
Back to the original question: why build your own CMS? Think about how long it took you to learn Drupal. For some developers, building a CMS takes less time than learning one as complex as Drupal.
PHP is a simple language (compared to others), and anyone can write basic code in it. Sure, over time you'll need to learn more to write a scalable CMS, but for now, let’s look at the benefits of your own CMS:
1. You know exactly where everything is. How often do you look into taxonomy.module or comment.module? Probably not often. The code is written, functions are documented, and templates can be overridden. But what if something breaks? Wait for core developers to respond to your bug report? That’s not ideal.
2. Better performance. It’s no secret that Drupal can be slow and makes many database queries. A custom CMS can work much faster. On the flip side, Drupal has modules for caching and optimization, so this is mostly an issue on shared hosting.
3. Full control. You can edit the core directly without worrying about rules like “don’t hack core.” You don’t have to wait for a new release to make your changes live.
Sure, there are downsides too—but let’s not dwell on them. We all know Drupal is great, no need to repeat it.
So, you’ve decided to build your own CMS—let’s begin.