Drupal is a free, open-source content management system for building and maintaining websites. Its PHP application runs on a web server in environments including Linux, Windows and macOS, while authors manage content through a browser. Drupal stores content in a database and combines it with themes and other assets to produce the pages visitors see.
The core software provides tools for defining a site’s content, assembling listings and managing access. Site builders choose which modules to enable and how content should appear. Drupal CMS is a separate, preconfigured starting point built on this core foundation.
Content types
Drupal lets a site distinguish between kinds of content instead of giving every page the same editing form. An administrator defines a content type and adds fields for the information its entries need. Text, dates, images and file attachments can occupy separate fields, so an author supplies values in an established structure when creating an item.
For example, a publication could give a report its own date and attachment fields, while a staff profile uses a portrait and biography. Fields also apply to other kinds of data, including user profiles, custom blocks and classification terms.
Taxonomy
Classification uses terms collected into vocabularies. A vocabulary can be a flat set of tags or a hierarchy with broader and narrower subjects. Administrators attach a taxonomy reference field to a content type, then decide whether authors may create new terms while editing or must select from an existing list.
Drupal creates listing pages for terms used to classify regular content. An item can therefore appear on its own page and alongside other entries assigned to the same subject. The classification remains part of the content’s data, available for filtering and display elsewhere on the site.
Views
Views turns stored content into configurable listings. A site builder chooses which records qualify, which fields to show and how to sort the results. Filters can restrict a listing to published entries of a particular content type or to items with a selected field value. Exposing a filter adds a form through which visitors can make that choice themselves.
A single view can supply several displays: a page at its own address, a block placed on other pages or a feed. Tables, grids and HTML lists offer different ways to arrange the output. Relationships extend a listing to information held in a referenced item, such as showing fields from the author account associated with an article.
Teasers and view modes
Drupal also separates an item’s full display from shorter presentations through view modes. Administrators can hide fields in a teaser while showing them on the full page, and use field formatters to trim text or turn a classification term into a link. The underlying entry supplies both presentations.
Editorial workflow
An item can remain unpublished while it is being prepared, with viewing permissions determining who can see it. Revision tracking retains earlier copies of supported content, allowing editors to compare changes or restore a previous revision.
The core Workflows module defines states and the transitions between them. Content Moderation connects those transitions to permissions, so a site can give an author permission to submit a draft while reserving publication for an editor. Permissions are grouped into roles, and each account can receive several roles. Separate anonymous and authenticated roles also control what visitors can do before and after signing in.
Translations
Drupal handles interface labels, site configuration and authored content as separate translation tasks. Interface Translation supplies language versions of built-in text, while Configuration Translation covers editable labels such as field names, view headings and the site name. The Language module supports a multilingual site with a language switcher for visitors.
Content Translation lets administrators choose which fields need their own language versions. Text and uploaded files can be translatable, while other fields retain a shared value. Authors can then enter translations for an existing item, preserving its content structure across languages rather than creating unrelated pages for each language.
Extending Drupal with modules
Modules add the operations a site needs. Core includes modules for content, fields, user accounts, navigation menus and Views; contributed modules and custom development can extend that foundation. Developers can work with Drupal’s PHP framework and APIs to alter behavior, using Composer to manage the project’s software dependencies.
Themes
Themes control the HTML markup and CSS surrounding the content. A site can use an existing theme or a custom design, with Twig templates available to theme developers. This separates visual presentation from the modules that select and manage the content, so the site’s data structure does not have to be recreated for a different design.





