When it comes to Drupal, there are a lot of videos, blog posts and general how-to's out there.
While some of them are good, others are in need of improvement and a few of them are simply outdated.
This project will try to list you the best, most promising and most efficient resources that you might need when developing a Drupal site.
This project lives through new and up-to-date resources from the community, from you!
If you would like to add a resource or contribute in any other kind of way, be sure to read our contribution guidelines.
- Installing Drupal
- Site building with Drupal
- Theming in Drupal
- Distributions
- Modules
- Themes
- Troubleshooting
- Contributing to Drupal
- Video tutorials
- Blog posts
- Further resources
- Drupal PaaS
- Get in touch with the Drupal community
- Credits
- License
There are different ways of installing Drupal.
You can either install it directly on your local machine (or any server) or you can also work with a VM if you prefer.
If you really just want to catch a quick glimpse about a specific Drupal distribution, module or theme, then you don't even
need to install anything! Check out the next section for details.
If you want to run Drupal locally (and directly) on your Mac machine, check out this great tutorial.
No further information needed. Simply visit simplytest.me and launch your custom sandbox!
In order to be able to run Drupal on your machine (or any server), you need a web server with PHP and a SQL database server. Please check the official requirements page for more details.
Up-to-date and detailed instructions can be found on the official installation page.
If you prefer working with a VM, check out following alternatives:
While not required, it's highly recommended that you set up your Drupal project with Composer,
regardless of your technical setup.
Check the Composer template for Drupal projects to install Drupal quickly via Composer.
If you want to speed up Composer, have a look at prestissimo.
You can install it globally (no project dependency) to speed up Composer installations by a lot!
Simply run composer global require hirak/prestissimo
and you're good to go.
Read more about prestissimo in its project page.
Jeff Geerling wrote a nice blog post about
convertig a non-Composer Drupal codebase to use Composer.
Check it out and benefit from Composer!
When it comes to developing custom modules, themes or simply automate certain tasks with scripts/cronjobs, there are two major Drupal CLI's which can be a huge help for you:
There are lots of different IDE's and editors for PHP. But most Drupal developers tend to use PhpStorm.
Do you use any other IDE or editor? Please let me know!
Once you have Drupal set up and running, it's time for site building.
Have a look at the great documentation on drupal.org about site building
as well as as understanding the concepts of Drupal.
- Twig Documentation - Twig is the templating language used in building a Drupal theme
- Debugging Twig Templates - This will allow you to see which templates are in use on a page, which template is used to render each item on the page, any hooks for that template, and give you suggestions for naming your new templates
- Drupal 8 Theming Fundamentals, Part 1 and Part 2 - An overview of creating and working in a Drupal 8 theme
- Drupal.org Theming Guide for Drupal 8 - The official guide to Drupal 8 theming. Not always the easiest to understand but very helpful for reference on many topics.
While Drupal 8+ core comes with lots of functionality already, the strength of Drupal lies in its extensibility.
Distributions are full copies of Drupal that include Drupal Core, along with additional software such as themes, modules, libraries, and installation profiles.
They're handy if you really just want to have a quick start with Drupal.
- Druppio - A small business distribution with demo content.
- Lighting - Lightning is a solid Drupal starter kit that enables developers to create great authoring experiences and empower editorial teams.
- Open Social - Open Social is a out of the box solution for online communities.
- Thunder - Thunder is a Drupal 8 distribution for professional publishing.
- Varbase - Varbase is an enhanced Drupal distribution packed with adaptive functionalities and essential modules, that speed up your development, and provides you with standardized configurations.
- .. and many more on drupal.org
- Drupal Commerce - Drupal Commerce is used to build eCommerce websites and applications of all sizes.
- Also make sure to check out the commerce documentation.
- Address - Provides functionality for storing, validating and displaying international postal addresses.
- Automatic Entity Label - Automatic Entity Label is a small and efficient module that allows hiding of entity label fields. To prevent empty labels it can be configured to generate the label automatically by a given pattern.
- Corresponding Entity References - CER keeps reference fields in sync. If you have two entities that refer to each other using Entity Reference (or some other kind of reference field), it saves you the trouble of double-editing your entities in order to have them point at each other.
- Default Content for D8 - The Default content module gives your module and install profile a way to ship default content as well as configuration.
- Diff - This module adds a tab for sufficiently permissioned users. The tab shows all revisions like standard Drupal but it also allows pretty viewing of all added/changed/deleted words between revisions.
- Disable Messages - Gives a site owner options to disable specific messages shown to end users.
- D8 Editor Advanced link - Enhances the link Dialog in D8 CKEditor.
- Entity Clone - This module add a new entity operation which allows to clone many of the entities (config & content) provided by the Drupal core.
- Entity Redirect - Adds a configurable redirect after saving a node or other entity. The redirect is configurable per bundle.
- External Links - External Links is a small module used to differentiate between internal and external links.
- Field Formatter Class - Allows site administrators to add classes to the outer HTML wrapper for any field display, so that CSS and Javascript can target them.
- Iframe - A custom field, which lets you add a complete iframe to your content types; including Src-URL, setting width and height, optionally a title above, and optionally a target attribute.
- Image formatter link to image style - This module provides an additional formatter for image core field, to link to an image style.
- Office Hours - Defines a 'weekly office hours' field type, allowing you to specify when a location is open or closed.
- Quick Node Clone - Quick Node Clone is meant as a way in Drupal 8 to clone nodes. It currently supports cloning of most field types including Inline Entity Form and Field Collection.
- Scheduled Updates - The Scheduled Updates module allows scheduling updates at a specific date and time to entities such as Content(nodes), Users, Terms, Files and many more.
- Scheduler - Scheduler gives content editors the ability to schedule nodes to be published and unpublished at specified dates and times in the future.
- State Machine - Provides code-driven workflow functionality. It's also being used in Drupal Commerce to define checkout workflows.
- This blog post is very helpful to get started with State Machine: Set up workflows with State machine on Drupal 8.
- Voting API - VotingAPI helps developers who want to use a standardized API and schema for storing, retrieving and tabulating votes for Drupal content.
- Config Ignore - This module is a tool to let you keep the configuration you want, in place.
- Configuration Split - Enables you to create different configuration sets for a site.
- Devel - A suite of modules containing fun for module developers and themers.
- Environment Indicator - This module will help you to keep sane while working on your different environments by adding a configurable color bar to each one of your environments.
- Hacked! - This module scans the currently installed Drupal, contributed modules and themes, re-downloads them and determines if they have been changed.
- Stage File Proxy - Stage File Proxy saves you time and disk space by sending requests to your development environment's files directory to the production environment and making a copy of the production file in your development site.
- Antibot - Antibot is an extremely lightweight module designed to eliminate robotic form submissions on your website in an innovative-fashion.
- Autocomplete Deluxe - This is an enhanced autocomplete element, that uses the jQuery UI autocomplete. It will also implement a widget for taxonomy.
- Better Login - Fancy and extendable login forms for Drupal.
- CAPTCHA - A CAPTCHA is a challenge-response test most often placed within web forms to determine whether the user is human.
- Chosen - Chosen uses the Chosen jQuery plugin to make your
<select>
elements more user-friendly. - Client-side hierarchical select - A simple client-side hierarchical select widget for taxonomy terms.
- Clientside Validation - This module adds clientside validation to all forms and webforms.
- Form Placeholder - This module creates the possibility to quickly add placeholders to all textfields of any form on the site.
- Honeypot - Honeypot uses both the honeypot and timestamp methods of deterring spam bots from completing forms on your Drupal site.
- Prepopulate - The Prepopulate module allows fields in most forms to be pre-populated from the $_REQUEST variable.
- reCAPTCHA - Uses the Google reCAPTCHA web service to improve the CAPTCHA system. It is tough on bots and easy on humans.
- Smart Date - This module attempts to provide a more user-friendly date field, by upgrading the functionality of core in a number of ways.
- Spam Master - Spam Master protects Drupal based websites from millions of known spam emails, domains, ip's and words by blocking user rregistrations, comments, messages, contacts, feedbacks or threads.
- Webform - Webform is the module for making forms and surveys in Drupal.
- Webform videos on Drupal.org - A series of videos by the makers of Webform explaining features and tutorials for installing and using the Webform module.
- Blazy - Provides integration with bLazy to lazy load and multi-serve images to save bandwidth and server requests. The user will have faster load times and save data usage if they don't browse the whole page.
- Image Optimize (or ImageAPI Optimize) - This is a toolkit for ImageAPI. It requires imageapi_gd or imageapi_imagemagick or any ImageAPI toolkit to work.
- Media - The Media module provides an extensible framework for managing files and multimedia assets, regardless of whether they are hosted on your own site or a 3rd party site - it is commonly referred to as a 'file browser to the internet'.
- PhotoSwipe - Use PhotoSwipe to display picture galleries on your Drupal website. This Javascript lightbox library offers very nice mobile browsing features (in particular swiping to the next picture)!
- Note: As for the
1.0-beta3
release, it needs to be patched when installed with Composer.
- Note: As for the
- Slick Carousel - Slick is a powerful and performant slideshow/carousel solution leveraging Ken Wheeler's Slick carousel.
- Also make sure to check out it's sub modules such as e.g. Slick Paragraphs or Slick Entity Reference.
- Video - Video module allows you to upload video in any format, play video in any format, transcode video to H.246, Theora, VP8(Web compatible formats) using Zencoder or FFMPEG automatically creates video thumbnails, copy and deliver videos from cloud file systems like Amazon S3.
- Video Embed Field - Video Embed field creates a simple field type that allows you to embed videos from YouTube and Vimeo and show their thumbnail previews simply by entering the video's url.
- Migrate Plus - The migrate_plus project provides extensions to core migration framework functionality, as well as examples.
- Migrate Source CSV - This project allows you to import CSV files using Drupal Migration.
- Migrate Tools - The Migrate Tools module provides tools for running and managing Drupal migrations.
- Migrate Wizard - The module provides a user-friendly solution for seamless content migration.
- Language Cookie - Adds an extra "Cookie" field to the Language Negotiation settings, allowing the language to be set according to a cookie.
- Domain Access - The Domain Access project is a suite of modules that provide tools for running a group of affiliated sites from one Drupal installation and a single shared database.
- Advanced CSS/JS Aggregation - AdvAgg allows you to improve the frontend performance of your site.
- CDN - This module provides easy Content Delivery Network integration for Drupal sites. It changes file URLs, so that files (CSS, JS, images, fonts, videos …) are downloaded from a CDN instead of your web server.
- DB Maintenance - DB maintenance optimizes administrator-selected tables in the database during regular cron.php executions.
- Memcache API and Integration - This module provides integration between Drupal and Memcached.
- Custom Search - This module alters the default search box in many ways. If you need to have options available like in advanced search, but directly in the search box, this module is for you.
- Elasticsearch Connector - Elasticsearch Connector is a set of modules designed to build a full Elasticsearch eco system in Drupal.
- Search API - This module provides a framework for easily creating searches on any entity known to Drupal, using any kind of search engine.
- Search API Solr Search - This module provides a Solr backend for the Search API module.
- Search Autocomplete - This module allows you to add autocomplete functionality to virtually any fields of a Drupal site. During the input, the field will be expanded and offers a list of suggestions before you start the search.
- Automatic Updates - A project for organizing the Auto Updates Initiative efforts, as proposed in this idea.
- Better Passwords - Better Passwords attempts to help users create better passwords by adhering to current recommendations from the US National Institute of Standards and Technology (NIST).
- Password Reset Landing Page (PRLP) - The Password Reset Landing Page "PRLP" module enhances the original password reset landing page by letting a user set their new password at the same time they "log in" using the one-time-login link.
- Password Strength - The Password Strength module provides realistic password strength measurement and server-side enforcement for Drupal sites using pattern-matching and entropy calculation.
- Persistent Login - The Persistent Login module provides a "Remember Me" option on the user login form.
- Protected Pages - Protected Pages modules allows the administrator to secure any page in your website by password.
- Rabbit Hole - Rabbit Hole is a module that adds the ability to control what should happen when an entity is being viewed at its own page.
- Security Kit - SecKit provides Drupal with various security-hardening options.
- Shield - PHP Authentication shield. It creates a simple shield for the site with Apache authentication.
- Google Analytics - Adds the Google Analytics web statistics tracking system to your website.
- Metatag - The Metatag module allows you to automatically provide structured metadata, aka "meta tags", about a website.
- Pathauto - The Pathauto module automatically generates URL/path aliases for various kinds of content (nodes, taxonomy terms, users) without requiring the user to manually specify the path alias.
- Piwik Web Analytics - Adds the Piwik web statistics tracking system to your website.
- Redirect - Manage custom site redirects.
- SEO Checklist - The Drupal SEO Checklist uses best practices to check your website for proper search engine optimization. It eliminates guesswork by creating a functional to-do list of modules and tasks that remain.
- Simple XML sitemap - Every webpage needs an automatic XML sitemap generator for SEO reasons. This module aims to be a replacement for the xmlsitemap module for Drupal.
- @font-your-face - @font-your-face provides an administrative interface for browsing and applying web fonts (using CSS @font-face, supported in all popular browsers) from a variety of sources.
- Admin Toolbar - The Admin Toolbar intends to improve the default Drupal Toolbar (the administration menu at the top of your site) to transform it into a drop-down menu, providing a fast access to all administration pages.
- Block Group - This module extends the standard Drupal block system with block groups. Each block group provides a new block as well as a corresponding region. Child blocks can be moved into any group region.
- Block Visibility Groups - Block Visibility Groups allows the site administrator to easily manage complex visibility settings that apply to any block placed in a visibility group.
- Easy Breadcrumb - The Easy Breadcrumb module provides a plug-and-play block to be embedded in your pages, typically at some place near the page's header.
- Entity Browser - The goal of this module is to provide a generic entity browser/picker/selector.
- Field Group - Fieldgroup will, as the name implies, group fields together. All fieldable entities will have the possibility to add groups to wrap their fields together.
- GraphQL - This module lets you craft and expose a GraphQL schema for Drupal.
- Linkit - Enriched linking experience - Linkit provides an easy interface for internal and external linking with wysiwyg editors by using an autocomplete field.
- Menu Breadcrumb - This module allows you to use the menu the current page belongs to for the breadcrumb, generating breadcrumbs from the titles of parent menus.
- Menu Item Extras - Menu Item Extras provides extra fields for menu items without using additional entities.
- Menu Link Attributes - This module allows you to add attributes to your menu links.
- Menu Link Weight - This module replaces the standard numeric weight dropdown widget for menu links in the node form with a tabledrag widget that lists all children for the selected parent.
- Menu Trail By Path - Menu Trail By Path sets the active-trail on menu items according to the current url.
- Paragraphs - Paragraphs is the new way of content creation! It allows you — Site Builders — to make things cleaner so that you can give more editing power to your end-users.
- Also check out Paragraphs Edit
- .. and this blog post
- Reroute Email - This module intercepts all outgoing emails from a Drupal site and reroutes them to a predefined configurable email address.
- Simple hierarchical select - Simple hierarchical select defines a new form widget for taxonomy fields to select a term by "browsing" through the vocabularies hierarchy.
- SVG Image Field - This module adds a new field, widget and formatter, which allows
.svg
file extension to be uploaded. - Token - Provides additional tokens not supported by core (most notably fields), as well as a UI for browsing tokens.
- Vertical Tabs Config - This module allows you to hide and re-order vertical tabs on add/edit node pages depending on content type and role.
- Responsive and off-canvas menu - This module integrates the mmenu jQuery plugin with Drupal's menu system with the aim of having an off-canvas mobile menu and a horizontal menu at wider widths.
- AddToAny Share Buttons - Share buttons for Drupal including the AddToAny universal share button, Facebook, Twitter, Google+, Pinterest, WhatsApp and many more.
- Ridiculously Responsive Social Sharing Buttons - Social sharing buttons that you can drop into any website with attractive SVG-based icons, small download, and browser compatibility. No 3rd-party scripts.
- Auth0 Single Sign On - Single Sign On for Enterprises + Social Login + User/Passwords. For all your Drupal instances. Powered by Auth0.
- Email Registration - Allow users to register and login using only an email address. Users can then log-in using their email address and password for authentication.
- Group - The Group module allows you to create arbitrary collections of your content and users on your site and grant access control permissions on those collections.
- Menu Per Role - This module allows you to restrict access to menu items based on user roles.
- Permissions by Term - The Permissions by Term module extends Drupal by functionality for restricting access to single nodes via taxonomy terms.
- Remove username - This simple module is removing the 'name' (username) field from the user management forms (create/register/edit accounts) by making the 'email' field required and copying the email address into the username field.
- RoleAssign - RoleAssign specifically allows site administrators to further delegate the task of managing user's roles while withholding the Administer permissions permission.
- Role Expire - Role Expire is a simple module that allows administrators to set and control expiry dates of user roles. A common use case for this module is to implement magazine style subscriptions where somebody purchases or receives access for a fixed period of time.
- Taxonomy access fix - This module adds more specific Taxonomy permissions.
- Better Exposed Filters - The Better Exposed Filters module replaces the Views' default single- or multi-select boxes with radio buttons or checkboxes, respectively.
- DraggableViews - DraggableViews makes rows of a view "draggable" which means that they can be rearranged by Drag'n'Drop.
- Views Conditional - Views Conditional is a simple module that allows you to define conditionals (if xxx then yyy) with fields in views.
- Views Infinite Scroll - Views infinite scroll allows you to load and display pages of any view inline, using AJAX (this has been called infinite scrolling, load more, autopaging, endless pages and more).
- Views Reference Field - This field in conjunction with the Paragraphs module, makes for a very powerful content management system, allowing addition of just about any kind of content into an entity page.
- Views year filter - This module add the possibility to expose date/date time filter with year (format CCYY) instead of using full date (format CCYY-MM-DD HH:MM:SS) or offset from the current time.
- AdaptiveTheme - Adaptivetheme for Drupal is a base theme designed for people who don’t code, or for those who only want to write a bit of CSS but still want a sleek and sophisticated theme for todays mobile web - and beyond.
- Bootstrap - This base theme bridges the gap between Drupal and the Bootstrap Framework.
- Drupal8 Zymphonies Theme - Drupal8 Zymphonies Theme is the first Zymphonies Drupal Free Responsive Theme which has many new features.
- ZURB Foundation - Zurb Foundation for Drupal is the official implementation of the framework by the same name.
- Adminimal - Responsive Administration Theme - A modern and minimalist design that makes administration an easy and fun experience.
- Also install Adminimal Admin Toolbar when using this theme.
Every software has bugs. At least if it does more than simply printing out a Hello World
.
While we're not able to write bugless software, we can still try to handle bugfixing as smooth as possible.
So, what do you do when you find a bug in a module, theme or maybe even Drupal core?
Or if you simply just need a little help? Let's try figuring this out in the next sections.
This step is extremely obvious, but maybe there has been a newer stable release of the module since your installation.
Check if you have the newest stable version of the project, the bug might have been fixed in the meantime.
The second step might be obvious too but I still want to point it out. Everyone is free to contribute to Drupal and while most Drupal-related things happen on Drupal.org itself, there are a few exceptions. So read the project's description carefully! Drupal console e.g. chose to handle bug reports/feature requests on GitHub. Drupal commerce offers contribution support on IRC.
Drupal projects normally work with issue queues (if nothing else defined), meaning that every project (Drupal core/module/theme/distribution/etc.) has it's
own issue queue. An issue can be everything from a bug report, task, feature request, support request, or just a plan.
You can read more about issue queues on drupal.org.
So, if you've found a bug in a project, there's a high chance that the bug was already reported or maybe even fixed.
On a project's page, search for All issues
and click on the x open
(x = number of open issues) link.
This link will take you to the project's issue queue.
Important: Drupal core is a Drupal project itself. It has it's own issue queue and release pages.
See the Drupal core project's page on Drupal.org.
In the issue queue the first thing you want to do, is filtering the issues by a major version.
If the module has been around since Drupal 6/7/maybe even longer, you're less interested in the legacy issues.
So change the Version filter to e.g. - 8.x issues -
.
If you still didn't find your issue, try changing the Status from - Open issues -
to - Any -
.
It's possible that the issue has already been fixed but not released yet.
If you didn't find your issue, you can create a new one. Make sure to be as precise and specific as possible.
Include the exact version of Drupal and the exact module/theme/distribution version.
Write how to reproduce the bug on a fresh Drupal installation. Speaking about, you might want to check if the
bug also occurs on a fresh Drupal installation with only the needed modules/themes installed.
Maybe it's a bug that only occurs when certain other modules/themes are installed?
Keep in mind that many projects are being contributed by developers in their free time. A project maintainer might respond very quickly to a new issue but sometimes it can take weeks or even months until you get a reply. In the meantime, you can try to get in touch with other Drupal developers who might be able to help you out. Check the next sections for more information.
As a developer, you probably came around Stack Overflow when trying to fix an issue.
Good news: There's a Stack Exchange for Drupal as well! It's called Drupal Answers, have a look.
If you were unlucky finding answers via the issue queue/Drupal Answers, maybe someone wrote a blog post or a tutorial
which could help you in solving your issue.
Now before you go on something like "But Googling is obvious", let me give you one important tip:
- Limit your search results to a specific time frame!
If you search for a commerce issue for example, the probability is high to find solutions to the Drupal 7 version of it.
But if you're interested in a solution for the Drupal 8+ versions, you're better off limiting the search results by e.g.
publish date and only show results from the past year on.
The date limitation is only one thing you can do, there are a lot of articles on how to google efficiently out there, read them!
If you still weren't able to find a solution to your issue, you can write to other Drupal developers via IRC or Slack.
Check the Get in touch with the Drupal community section on how to connect to them.
When asking for help, keep in mind that it's not self-evident to help many other people in complicated matters. Be friendly, try describing your issue as precisely as possible and maybe a good fellow will help you out.
Are you happy with Drupal and would you like to give back? That's great!
There are many different way on how to contribute back. You can improve documentation, add translations, create
new contrib projects or simply donate.
Please follow the Ways to Get Involved guide on Drupal.org.
One important tip though: Starting to contribute can be a little bit tough and difficult in the beginning.
If you have the chance to visit A Drupal camp or conference or maybe even just a meetup, try to get some guided help there.
Some things are a little bit complicated but every experienced Drupal developer will most-likely try in helping you out.
Don't be afraid to ask for help! I quote from Drupal:
Come for the Code, Stay for the Community.
Find below a few video resources that are really worth your time.
Important: There's also Drupal.tv, check it out!
- Drupal 8 Beginner Tutorials - A 63 video training course by OSTraining introducing the basics of Drupal 8. Designed for absolute beginners, it assumes no prior experience with Drupal and does a great job of explaining the basics.
- Build Your First Drupal 8 Site in 1 Hour - An 11 video course by OSTraining that goes over "how to create content, use Views, add contact forms and choose themes".
- How To Install Drupal 8 Sites - A 5 video course by OSTraining going over the basics on how to download, install and set up a Drupal 8 site.
- How to Update Drupal 8 Sites, Modules, Themes - A 5 video course by OSTraining explaining how to update Drupal 8 sites, modules and themes.
- How to Backup and Restore Drupal 8 Sites - A 5 video course by OSTraining explaining how to backup the files and database for a site as well as restore them.
- Rendering & caching: a journey through the layers - Understand the basics of the Render and Cache API.
- Webform
- Videos on Drupal.org - A series of videos by the makers of Webform explaining features and tutorials for installing and using the Webform module.
- Decouple your Twig from PHP and make Frontenders happy! - A talk about using Drupal + Fractal + Node.js.
- Building your first Drupal 8 Theme - A guide helping you to create your first Drupal theme step by step.
- Drupal 8: Hooks, Events, and Event Subscribers
- Set Required and Optional Address Inputs for Address Field in Drupal 8
- How to Change the Default Text Strings in Drupal 8
- Stop Waiting for Feeds Module: How to Import RSS in Drupal 8
- Using Responsive Images in Drupal 8
- Set up workflows with State machine on Drupal 8
- Converting a non-Composer Drupal codebase to use Composer
- Drupal 8 Add Cache Metadata to Render Arrays
- Integrate Webform and Google Sheets using Zapier in Drupal 8
- How to Set a Voting System in Drupal 8
- The Ultimate Tutorial for Drupal's Paragraphs Module
- Drupal 8’s mail sending opportunities
- Top 2018 Drupal Modules using Artificial Intelligence
- Using partial Twig templates
- Visual Regression Testing with BackstopJS
- Composer Best Practices for Updating Drupal 8 Core and Modules
- Testing the 'Add user' and 'Edit account' forms in Drupal 8 with Behat
- Simple Guzzle API mocking for functional testing in Drupal 8
- Decoupled Drupal Authentication with JSON Web Tokens
- Automatic removal of .git directories from Composer dependencies
- Make composer operations with Drupal way faster and easier on RAM
- How to Create a Node in Drupal 8 using REST
- Provide a custom mode form to entities with Drupal 8
- Drupal 8 Configuration Management with Config Split
- Writing Automated Tests in Drupal 8, Part 1: Test types and set up
- Writing Automated Tests in Drupal 8, Part 2: Functional tests
- Writing Automated Tests in Drupal 8, Part 3: Unit tests
- Keeping your Drupal 8 modules, themes and custom code continually up to date, preparing for Drupal 9
- How to Create a Product Catalog with Search API, Solr and Facets
- Reuse readme.md in hook_help() with Parsedown
- Controlling multiple sites with Drush 9
- Doping for editors: Put the fun in Paragraphs
- Recognizing Insecure Drupal Code
- Using Config Split and Config Ignore to Fine-Tune Your Configuration Management Process
- Migrate from a CSV to Content Entities with Paragraphs
- Migrating files and images into Drupal
- Migrating data into Drupal subfields
- Invalidate the page cache according to a duration with Drupal 8
- Customise scaffold files the right way
- Automatically remove the Drupal core README (and other) scaffolding files
- Customizing a CSV export with Entity Export CSV on Drupal 8
- How to Test Your Drupal Site's Accessibility
- Drupal 8 content migrations from CSV or spreadsheet
- How To Add Filter Effects to Images on your website with Image effects module
- How to Import External Feeds into your Drupal 9 Website with the Feeds Module
- Drupal 9 Multisite setup in Lando
- Using Drupal API To Create A Cross-Platform Menu
- Most Popular Drupal 9 Modules to Enhance Website Performance
- Integrate your eCommerce website with these must-have Drupal Modules
- Top Security Modules for Your Drupal 9 Website
- Create a shipping method with Drupal commerce 2
- Drupal 9: Altering Routes With The Route Subscriber Service
- How to Create Charts in Drupal with the Charts and Charts Twig Modules?
When it comes to hosting a Drupal site, you can always use any server which supports the system requirements. However, there are a few Drupal specialized PaaS hosting options you might want to consider as well.
If you wish to get more involved with the Drupal community, or want to get in contact with Drupal developers, you can use one of the following platforms.
- DrupalChat - An open source (Rocket.Chat) alternative to Slack.
- Drupical - Find Drupal events with ease in a map! Note: The list is not complete but can give you a rough overview of Drupal events around the world.
- IRC - Chat with the Drupal Community on IRC!
- Meetups - Participate in local Drupal meetups in your area and meet the community face to face.
- Reddit - The Drupal community on Reddit. They have weekly rotating posts!
- Slack - A list of Drupal Slack spaces and channels.
- Twitter - Yes, a lot of us are on Twitter too!
#drupal
Get the best Drupal news, tutorials and articles once a week without hours of browsing.
Check out the TheWeeklyDrop.
- David Pacassi Torrico - Project maintainer
MIT License
Copyright (c) 2018 David Pacassi Torrico
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.