Development tools overview

Last updated on
31 July 2023

Use these development tools to help you create Drupal sites faster and with less effort. If you have a favorite Drupal tool that is not listed, make sure you've checked every section of this document. Still can't find your favorite? Please add it using the format as other listings, similar to: Toolname (Free/Commercial. FOSS/Proprietary. OS Platforms.) - Description.


Drupal Modules

Devel

Devel is a suite of modules that provides helper functions, admin pages, and additional development Drush commands to use during development.

On your development site, you can use Devel to generate dummy(example) content, examine service containers, routes, and events.

Inside your PHP code Devel adds new PHP functions to output a variety of messages, directly on the page in question. Use these messages to help debug your code.

From the command-line Devel gives you new drush commands that can do many of the above actions, and also some reference commands so you can view hook implementations or refer to a function to learn how it works.

For more information on what the module includes or how to use the features, please refer to the project documentation.

WebProfiler

WebProfiler adds a toolbar at the bottom of every page and shows you all sorts of stats such as the amount of database queries loaded on the page, which services are used and much more.

Module Builder

Module Builder helps code generation by auto-generating a skeleton or "scaffolding" for a module, along with hints on how to fill them in. Useful for newbie developers to learn how Drupal code works, and seasoned developers who are too lazy to look up what arguments a function has to take.

WebWash has a video demo on Module Builder, as well as comparing with the code generator using Drupal Console and Drush.

rawdebug

Simple functions that provide a log file, show the contents of variables, and show backtraces. Can be used even if the site has completely crashed.


Command-line tools

Also useful for devops or sysops.

Git

Git is the modern version control system and has become the defacto standard for open source projects. You can use it to track changes made to files within your entire Drupal installation, or just the module or theme that you are working on. Git makes it easy to try out changes, and if necessary, revert to a previous version of your files if there is a problem.

More info about Drupal & Git

Composer

Composer is a dependency manager for PHP, it is the standard way across many PHP projects to set requirements for external dependencies. You can use it to install and update Drupal's external dependencies. It's the recommanded tools to install Drupal and modules.
More information about using composer.

Drush

Drush is one of the most popular, if not the most popular, Drupal development tool out there. Drush is the command line and scripting interface for Drupal. You can use it to speed up installing, developing, debugging and maintaining Drupal sites. It is also capable of generating boilerplate code for custom developments. It takes some getting used to, and there are a lot of commands to remember but, once you do, it is a real time saver. Rather than clicking through the admin interface to achieve something, you simply type in one command. When building Drupal sites and developing custom modules and themes, this can really help.

Drush is hosted on GitHub: https://github.com/drush-ops/drush

Drupal Console

Drupal Console is another CLI developed for Drupal 8. Drupal Console is a tool to generate boilerplate code, interact and debug Drupal. From the ground up, it has been built to utilize the same modern PHP practices which were introduced in Drupal 8.

Drupal Console has been designed to facilitate the Drupal 8 adoption while making development and interaction more efficient and enjoyable.

Landing page: https://drupalconsole.com/

Druml

Druml is an Open Source project that helps to manage hundreds of Drupal sites in the same docroot. Druml is a set of bash scripts. Despite Druml sounds similar to Drush, it is not a replacement to Drush, instead, it is an addition to Drush and it uses Drush a lot. It also works nice with Acquia Cloud Platform and there are some specific Acquia Cloud commands.

Landing page: http://www.usedruml.com/
Git page: https://github.com/georgetown-university/druml

Drupal Code Generator

A simple command-line code generator for Drupal.

dos2unix

The Drupal coding standards specify Unix-style line endings. If you inherit code that uses a different convention, the easiest tool to correct the code is dos2unix. If you develop on Linux, you will probably find it installed, or if not you can probably install it from your distribution's repository. To correct all code files in a directory and its subdirectories, cd to the top directory and use the CLI command find -name \*|xargs dos2unix


Development environments

More information about Local server setup

Docker-based Solutions

The majority of Drupal developers use Docker or Docker-based local development environments, according to the 2023 Drupal Local Development Survey Results. (here's 2020, 2019, 2018)  These are the most popular Docker-based local environments, sorted by popularity:

Lando

A free, open source, cross-platform, local development environment and DevOps tool built on Docker. Designed to work with most major languages, frameworks and services, Lando provides an easy way for developers of all skill levels to specify simple or complex requirements for their projects, and then quickly get to work on them.

DDEV

An open source tool that makes it dead simple to get local PHP development environments up and running within minutes. It's powerful and flexible as a result of its per-project environment configurations, which can be extended, version controlled, and shared. In short, DDEV aims to allow development teams to use Docker in their workflow without the complexities of bespoke configuration.

Docker4Drupal

Docker4Drupal is a set of docker images optimized for Drupal. Also, the project provides pre-configured docker-compose.yml file to spin up local environment on Linux, Mac OS X and Windows. The project is free and open-source.

Docksal

Docksal is a tool for defining and managing web development environments. It uses Docker and Docker Compose to create fully containerized environments for your projects. Running Docker on macOS and Windows is supported via VirtualBox as well as Docker for Mac / Docker for Windows.

Docker

Docker allows you to package an application with all of its dependencies into a standardized unit for software development. Setting up Docker manually is more demanding, but also gives your more flexibility.

'Total' Solutions

Acquia Cloud

(Free or Commercial, corporation owned, not open source, OS limitations, continuous delivery, and developer tools)

Acquia Cloud is a Drupal hosting platform and developer tool suite that aims to make Drupal developers faster and more powerful. You can sign up for free to try out most of the tools with unlimited sandboxes.

Acquia Cloud provides multiple development environments out of the box, with support for a drag-and-drop workflow on the web, a desktop GUI client, or Drush/command line integration. It also includes Insight (a set of tests to check that your site follows best practices). Different tiers include different levels of Acquia Search, Mollom anti-spam and Drupal support. Acquia was co-founded by the Drupal project lead Dries Buytaert.

Aegir Hosting System

(Free, community-owned and supported, open-source, OS limitations. Aegir is a sophisticated DevOps solution for both Drupal and Wordpress. It is for the Pros.)

Aegir allows you to easily and quickly create, deploy, and manage many Drupal and Wordpress web sites, and scale across multiple server clusters. What makes Aegir exceptional is that some advanced work has been done to integrate it into large project 'control panels' along with other power tools like Jenkins and Vagrant. The goals of the Aegir project are ambitious. This is about as close as you will find to a complete solution to the Drupal 7 or 8 or Wordpress deployment, version control, everything-in-code puzzle. The project is mature and there are some excellent screencasts out there. Also, Aegir is fully extensible, since it's built on Drupal and Drush, and supports many add-ons through contributed extensions. The downside is that if you go the Aegir route, there is a steeper initial learning curve. Mainly because you will need to invest a certain amount of time planning your Aegir infrastructure and creating the scripts to do the job the way you need. However, a month or two into the project, pass that initial learning curve the rewards could be considerable. 

Pantheon

(Free or Commercial, corporation owned, not open source, no OS limitations, cloud hosting, and development pipeline)

Pantheon provides instant Drupal development environments hosted in the cloud. You can sign up for a free account and with one click you get three environments for one site (dev, test and live) all connected by Git version control. 

The control panel simplifies the Git pull and push between the sites. There is a one-click site backup and site download feature. You can export sites to your own hosting environment. You can also collaborate within your team if they each sign up for a free account. Costs kick in when you want to use your own domain name to point to the site. Command-line access is available via Terminus and you can use it to run many commands, including Drush.

OpenDevShop

(Free, community-owned and supported, open-source, a true Cloud Hosting Style Solution, enterprise support available)

DevShop is a "cloud hosting" system for Drupal. DevShop makes it easy to host, develop, test and update drupal sites. It provides a front-end built in Drupal (Devmaster) and a back-end built with drush (DevShop Provision).

DevShop deploys your sites using git, and allows you to create unlimited environments for each site. DevShop makes it very easy to deploy any branch or tag to each environment

Code is deployed on push to your git repo automatically. Deploy any branch or tag to any environment. Data (the database and files) can be deployed between environments. Run the built-in hooks whenever code or data is deployed, or write your own.

Open DevShop is built on top of Aegir and proves to be a project developed with the DRY principle in mind, as its core developers are also contributors to the Aegit project.

Gitpod

(Open-source, Cloud IDE)

Gitpod is an open source platform for automated and ready-to-code development environments that blends into your existing workflow. It enables developers to describe their dev environment as code and start instant and fresh development environments for each new task directly from your browser.

It is a total solution in the sense that it removes the burden of maintaining a dev enviroment, but it deals only with the dev environment and it will not host your project.

There is a Gitpod configuration ready for Drupal, actively used and maintained, available on Github. You can use it as a starterkit for your Gitpod configuration or clone it and use it right away.

Gitpod is free for public repositories and has a sensibly priced monthly subscription for private repositories.

'Old school' Solutions

Local PHP

(Open-source)

The minimal requirement for a simple local Drupal installation is PHP (it uses sqlite as database). Once PHP installed, you only need to exacute these few lines to get a runing Drupal website on localhost:8888:

curl -s https://getcomposer.org/installer | php
composer.phar create-project drupal/recommended-project localhost -n
cd localhost
composer.phar require drush/drush
vendor/bin/drush si standard --locale=fr --db-url=sqlite://../drupal.sqlite -y
vendor/bin/drush runserver --quiet runserver 8888 &

LAMP/WAMP/XAMP/XAMPP/Wampserver

Bundled Apache, MySql & PHP executables for Windows, Mac or Linux. Old method, and not recommended.


Integrated Development Environments (IDEs)

IDEs expand on the ability of a simple text editor. Here is a list of IDEs that work well with PHP and Drupal. Note: There is also a Drupal IDE group dedicated to setting up an IDE for Drupal development for starter tips, and ongoing interactive discussions.

PhpStorm

Visual Studio Code

  • (Free. Open Source. Windows, Mac, Linux)
  • Uses the same electron.io framework that Github Atom is built on. Integrated Git version control, code hinting, code completion, language support for many languages, debuggers, and many extensions.
  • See Configuring Visual Studio Code.

Vim/Neovim

  • (Free. Open-source. Linux, Mac, Windows, and others)
  • An advanced text editor based on vi, but more powerful. The learning curve is reasonably steep and the interface can be confusing at first, but this is soon rewarded with greater editing efficiency. Read more about configuring Vim for Drupal and documentation for the Vimrc project.

Sublime Text

  • (Commercial. Proprietary. Win, Mac OSX, and Linux)
  • Sublime Text is a sophisticated text editor for code, markup, and prose. You'll love the slick user interface, extraordinary features, and amazing performance. (Has full-featured trial available with no time limit)
  • See also Configuring Sublime Text here at drupal.org.

BBEdit

  • (Commercial. Proprietary. Mac only.) Paid and free versions
  • The very capable free version (formerly known as TextWrangler) lets you read and save via FTP/SFTP, and supports grep and Show Changes (diff).
  • Check out BBEdit Clippings for Drupal 7

Netbeans

  • (Free. Open Source. Linux. Mac. Win. Solaris)
  • Across-platform IDE with full PHP and debugging support.
  • Supported by the Apache Software Foundation.
  • Firefox extension easy Xdebug makes debugging easy with Netbeans.
  • See the Netbeans docs here at drupal.org.

Other IDE's

Eclipse

  • (Free. Open-source. Linux, Mac, Windows, and others. Java-based.)
  • PHP Development Tools (PDT) from The Eclipse Foundation. This is generally considered the new version of PHPEclipse. Community owned and supported, and open source. PDT provides a PHP Development Tools framework for the Eclipse platform.
  • See also Configuring Eclipse here at drupal.org.

Eclipse Che

  • (Free. Open-source. Linux, Mac, Windows, and others.)
  • A Cloud IDE (integrated development environment), an in-browser online IDE.
  • The main difference between Eclipse Che and the standard Eclipse IDE is its ability to create Docker containers to execute applications.

Komodo IDE

  • (Free. Open Source. Linux, Mac, and Windows.)
  • See the Komodo docs here at drupal.org.

Bluefish Editor

  • (Free. Open Source. Linux. Mac.)
  • Fast Lean multi syntax WYSIWYN editor - GTK+ based
  • A lightweight, fast, multi-syntax IDE that supports projects, multiple documents, ftp/webDAV/sftp/http/https/samba, user custom integration with many programs like make, lint, weblint, xmllint, tidy, javac, more..., multi-language translations, etc.

Geany

  • (Free. Open Source. POSIX > GTk+. Linux. Mac. Windows.)
  • Fast lean multi syntax - GTK+ based

CodeLobster

  • (Commercial and free versions. Proprietary. Windows only.)
  • IDE with PHP/HTML/CSS/JavaScript highlighting, advanced PHP/HTML/CSS/JavaScript autocomplete, PHP debugger, SQL autocomplete, context and dynamic help.

Xcode

KDevelop

  • (Free. Open-source. Linux, Solaris, FreeBSD, Mac OS X, and other Unix flavors.)

Aptana Studio 3

  • (Free. Open source, though some features, notably SFTP support, require a commercial license. Linux, Mac, Windows, and others. Java-based.)
  • A full-featured Web Development IDE. A package based on the Eclipse environment that comes with the essentials right out of the box (PHP highlighting, ftp/sftp, code browser, etc).

Tools for working with text & code

In the world of pure Linux/Unix, the most popular editors are the intimidating but powerful Emacs and Vi. Devotees have long argued the merits of which is better. You'll want a cheat sheet to learn either, but serious users find that Emacs and Vi allow fast, touch-typed editing that's quicker than using a mouse-based desktop application.

Emacs

  • (Free. Open-source. Runs on Linux, Mac, Windows, and others.)
  • An extensible, customizable text editor with its own interpreter for Emacs Lisp. Read more about Emacs setup for Drupal.

GNU Global

  • (Free. Open-source.)
  • An editor independent source code tagging system commonly used in Emacs and Vim. Read more about GNU Global setup for Drupal

Other Editors

  • Brackets (Free. Open Source. Windows, Mac, Linux.), has a plugin system with extensions for Drupal (PHP syntax for drupal file extensions), integrating Git, and many others for styling and validating code.
  • Dreamweaver (Commercial. Proprietary. Mac and Windows.) - A WYSIWYG HTML/XHTML, CSS, PHP, XSL/T editor, and there's a free Drupal API extension for Dreamweaver.
  • jEdit (Free. Open source. Runs on Linux, Mac, Windows, and others. Java-based.)
  • Kate (Free. Open source. Available for Linux, Windows and macOS). A source code editor developed by the KDE free software community, as part of KDE Software Compilation since 2001. 
  • Komodo Edit (Free. Open source. Runs on Linux, Mac and Windows. Configuration guide available.)
  • Notepad++ (Free. Open Source. Windows only.) - A light-weight notepad replacement with tabbing and syntax highlighting.
  • Smultron (Commercial. Proprietary. Mac only.)
  • TextMate (Commercial. Proprietary. Mac only.) - A couple of Drupal specific bundles are available, the PHP Drupal bundle which has the most features and another by Steven Wittens which allows tab completion of function signatures - both can exist without conflict. A lot of the power of TextMate is in its bundle system and it has built-in support for diff which speeds up the rolling and applying of patches and many more.

Tools for Your Browser

Mozilla Firefox

  • (Free. Open Source. Linux, Mac, Windows, Android, and others.)
  • Firefox Developer Tools - Built-in tools provided by Firefox for developers to inspect web code.
  • Web Developer Extension - Adds a toolbar and menu to the browser with various web developer tools. For example, you can disable form fields; reveal hidden form elements; edit CSS in real-time, and clear the browser cache and session cookies.

Google Chrome

  • (Free. Proprietary. Multi-platform.)
  • Based on the open-source edition "Chromium"
  • It contains a Firebug-like debugger for JavaScript/DOM/CSS, a profiler and storage and audit tools. Shares code with Safari.

Microsoft Internet Explorer

Opera

  • (Free. Proprietary. Linux, Mac, Windows, and others.)
  • Versions 9.5 and above contain developer tools similar to Firebug for debugging web pages.
  • Opera Dragonfly is a full-featured development and debugging tool integrated into the Opera web browser. It supports debugging JavaScript, viewing the DOM

Safari

  • (Free. Proprietary. Mac and Windows. Shares code with Chrome.)
  • It contains a firebug-like debugger for JavaScript/HTML/CSS, a profiler and storage and audit tools, and the Webkit team is working on new and improved developer tools.

SQL & Database tools

There is software that can aid your SQL and database needs with features ranging from queries to administration.

MySQL Workbench

  • (Free. Windows/Mac/Linux. Source available. MySQL only.)
  • The official GUI application from the MySQL community allowing developers to design, model, query and administer MySQL databases. Replaces the MySQL GUI Tools Bundle.

phpMyAdmin

  • (Free. Windows/Mac/Linux. Source available. MariaDB and MySQL.)
  • One of the most popular PHP tools for querying, modifying and administering a MySQL database, included in most shared hosting packages (if not, find a different host! Or just install it yourself, not hard). For local database installations, you could try phpminiadmin which is an order of magnitude faster than phpMyAdmin but has fewer features.

phpMemcachedAdmin

  • (Free. Windows/Mac/Linux. Source available. Memcached.)
  • Graphic stand-alone administration for memcached to monitor and debug purpose.This program allows to see stats, server slabs, occupation, memory wasted and provide a console to execute commands.

DbVisualizer

  • (Commercial. Proprietary. Free versions. Linux/Windows/OSX)
  • Universal database tool
  • Works with any database that has jdbc drivers available.

Adminer

  • Free & Open Source
  • Adminer (formerly phpMinAdmin)
  • Full-featured database management tool written in PHP. Conversely to phpMyAdmin, it consists of a single file ready to deploy to the target server. Adminer is available for MySQL, PostgreSQL, SQLite, MS SQL, and Oracle. See also Adminer vs. phpMyAdmin comparison.

pgadmin3

  • (Free. Windows/Linux/Mac PostgreSQL).
  • Industry-standard for administering a PostgreSQL database, the SQL99 reference database. Runs from your desktop, SSL aware, no need to install anything on your server. The application also includes a syntax highlighting SQL editor, a server-side script editor, an SQL/batch/shell job scheduling agent, support for the Slony-I replication engine and much more.

Toad for MySQL

  • (Free. Windows. MySQL only.)
  • Toad for MySQL Freeware is a tool that improves the productivity of developers and administrators by providing an easy-to-use development environment.
  • Features:
    • Version Control Integration,
    • Macro Record and Playback,
    • Database Browser,
    • Code Snippet Editor,
    • Security Manager,
    • SQL Editor, Fast,
    • Multi-Tabbed Schema Browser,
    • DB Extract,
    • Compare-and-Search Utility,
    • Import/Export Utility.

FlySpeed SQL Query

  • (Free. Windows. MySQL/PostgreSQL)
  • Builds queries without needing deep knowledge of SQL syntax and performs data manipulations such as export and reporting.

Navicat

  • (Free & Commercial. Windows, Linux, Mac. Versions for MySQL, Oracle, PostgreSQL.)

Sequel Ace (formerly known as Sequel Pro)

  • (Free. Mac. MySQL)

SQLyog

  • (Free Community Edition, Enterprise Edition. Windows. MySQL)

HeidiSQL

  • (Free & Open Source. Windows. MySQL only.)

Beekeeper Studio

  • (Open Source. Windows, Linux, Mac. MySQL, MariaDB, PostgreSQL, SQLite, Redshift, SQL Server, CockroachDB)

Other Types Of Development Tools

  • PuTTY (Free. Windows only.) - An SSH and telnet client.
  • WinSCP - WinSCP is an open-source free SFTP client and FTP client for Windows.
  • 7 Zip (Free. Open Source. Windows is the primary platform, with ports listed on the download page.) - Extracts archived and compacted files (such as tarballs).
  • Cygwin (Free. Open Source. Windows only.) - Allows Windows users to use a Unix like shell. This is particularly useful for interfacing with git and patching files; read more.
  • Filezilla (Free. Open Source. Windows, Mac, and Linux.) - Graphical FTP client
  • IE Net Renderer - Check your site on IE 6 & 7 without Windows
  • UnxUtils (Free. Open Source. Windows only.) - a lightweight option for adding some Unix command-line utilities such as patch and grep to Windows, for those not wishing to download Cygwin.
  • Realtime CSS Viewer Gem (Free, runs on Ruby) - This is a CSS viewer that monitors your changes as you edit in any text editor. This link does not work anymore
  • Vagrant - a tool to quickly set up a virtual machine for local development. There are configuration GUIs that can help with creating custom configurations: PuPHPet, Phansible, Rove, and Protobox.
    Watch this video on how to quickly a Vagrant VM up and running. See an exhaustive list of Vagrant-based Drupal development environments.
  • Composercat - comprehensive GUI for the Composer package manager, designed both for professionals and people taking their first steps with Composer.

Help improve this page

Page status: No known problems

You can: