๐Ÿ’ง

Drupal

Drupal is an older, highly flexible open-source content management system stewarded by the nonprofit Drupal Association and its global contributor community. It ranks around #28 among web frameworks/CMS platforms at roughly 2.2% usage share. It's favored for large, complex sites โ€” government agencies, universities, media organizations โ€” that need fine-grained content modeling, permissions, and access control beyond what WordPress offers out of the box.

Quick facts
Type: Content management system (CMS), built in PHP
Made by: Drupal Association (open-source)
License: Free / open-source (GPL)
Language: PHP
Primary use case: Large, complex, permission-heavy sites โ€” government, university, and enterprise content platforms
Jump to: ExampleGetting startedBest for

Example

Drupal modules extend the CMS by implementing "hooks" โ€” functions with a specific naming convention that Drupal calls automatically at defined points, such as when a node (piece of content) is saved.

/**
 * Implements hook_node_presave().
 */
function mymodule_node_presave(\Drupal\node\NodeInterface $node) {
  if ($node->bundle() === 'article') {
    $node->set('field_word_count', str_word_count(
      $node->get('body')->value
    ));
  }
}

Getting started

Use Composer, Drupal's supported dependency manager, to scaffold a new project and pull in Drupal core.

# create a new Drupal project via Composer
composer create-project drupal/recommended-project my_site

# enter the project and start a local dev server
cd my_site
php web/core/scripts/drupal quick-start
Best for: Large institutional sites โ€” government portals, universities, media outlets โ€” that need granular content types, user roles, and access rules at a scale where WordPress's simpler model starts to strain.