Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

PHP Lessons - Part 3 - Creating Your Own CMS

16/04/2025, by Ivan

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:

DriesDries (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.

Webchickwebchick (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.

GaborGá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.