In recent years Drupal has been taking over the web design industry. With it easy content and administration handling, top SEO and an infinite universe of templates to customize the look of a website. However, to design and develop a good website. Drupal is great in many reasons but also need to work together with the best handpicked modules for each project and it functionalities. Here are the reasons of developing websites with Drupal instead of its closest competitor Wordpress and the modules you should use with it for different purposes.
Potential. Drupal is actually more for developers. We need more knowledge to handle and squeeze their potential, but someone with professional programming skills can get much more out of Drupal than for instance WordPress or Joomla.
Freedom. While WordPress is very focused towards creating blogs-so was born the-shelf, Drupal provides more freedom to do any type of page. It is true that WP is diversifying and the trend is to extend its capabilities.
Content types. While WP offers few options (pages, projects, tickets, etc.) to serve, Drupal offers a higher level of customization. In WP it is possible to do so, either through modification of the code or template.
For User roles and management. In Drupal it is possible to define with greater precision different tasks. You can create all you want and assign specific permissions to each of them: the ability to edit according to the type of content, etc.
Design. Change the design elements (header, etc.) WP involves making changes to the template code, you use; Drupal, with its editing system blocks, you can do it without touching the code.
Plugins. In WP is a wide range of added features that get through accompanying programs (plugins). However, it is difficult to find one that meets all the desired features; It may be spread over several places. Drupal has created a single module for added functionality, and improvements are superimposed. You can not create another module that does the same already created function of your own and add it to the community.
URLs. Drupal allows you to customize the web address of each content. Suspension by categories, subcategories, events, etc., while there are fewer possibilities WP.
Languages. For sites that go in several languages, it is quite easier to manage translations of content in Drupal.
All these factors do not mean that WP is not an attractive and interesting platform for designing your website. However, if you want a full-page, more tailored, and accounts with sufficient knowledge, maybe you're better with Drupal. A professional can get rather more for Drupal that WP, designed to be more accessible to everyone by sacrificing some customization.
Drupal Top Modules
The admin menu is basically the defacto standard module for developers to navigate through the maze of Drupal administrative menus.
A great tool for developers to backup their various configuration (Panels, Views, content types) to code. In Drupal 8 a lot of the work Features does now will be handled by configuration management but I imagine Features will still have some kind of a role in the future.
This allows you to easily dump the sites database minus cache tables which is great for migrating the site across environments. It is also great for scheduled backups that run on cron runs.
A must have tool for developers to debug their sites.
Drush is the standard for developer command line site administration.
Context is some ways is a replacement for the admin/build/block page which has severe limitations. Panels are used today as a preferred layout/site building tool. Context are used mostly for global blocks, theme settings, breadcrumbs, etc..
Display Suite is used for adding advanced field configuration and layout control for node pages (and other entities). It does really well in extending the Drupal 'display fields' to gives a much greater control over the layout of entities.
Recommended over the References module which was a holdover from Drupal 6. This module is better for relating entity content (like a node reference) and has been moved into Drupal 8 core.
This modules allows you to create composite fields for Drupal content types. Configuring your views, etc.
This lets you group fields together and is absolutely handy for organizing fields on content types as well as other entities.
This module allows you to do things like reference an existing file from a file field or a really great feature is fetching a file from an external URL.
Allows you to add ‘link’ fields to content and has Views integration.
This is a powerful module for all types of media.
This allows you to create new instances of a menu you have created. This is very helpful because sometimes you want to render only a 'slice' of a menu or render it differently depending on the context in which it's used.
This module offers very straightforward breadcrumbs when you have a nested links in your primary menu.
This module is great for bulk editing of menus on a site. Drupal Core only lets you add 1 menu item at a time, while with this module you can update many at 1 time.
This is a powerful site building tool for Drupal. The Panels module allows you to control the layout of virtually any page, including entities like node pages.
The standard for automatic path aliasing. A must-have module.
It's a swiss-army-knife tool for all sorts of tasks that in the past might have required custom code. You can send emails, set breadcrumbs, all sorts of tasks.
This module gives you much better control over cutting teasers from body content (or other fields). This is extremely helpful for creating teasers in lists on your website.
A must-have module. It has become so ubiquitous with Drupal that it is now in Drupal 8 core.
A very handy administrative-type tool. I use this to provide administrator’s with a view-based replacement for the ‘Admin content’ and ‘Admin user’ screens so that we can customize the appearance of those screens.
It’s very common for sites to have something rotating somewhere (including the homepage). MD Slider is an easy to use and very powerful slider that let you do all kind of magic qith simple clicks (another example is FlexSlider).
A must-have module for every site. Often used for contact forms and has all kinds of useful functionality.
Colorbox is less buggy and more cleanly implemented than Lightbox2. For example, lightbox2 adds too many formatters which can be annoying when you are trying to configure a view or field to use a certain set of image presets.
A great module for importing content. It is important for sites to be able to import syndicated content and this is a great tool for importing content. It can be a great tool for migrating content as well.
This module is abstract enough that it can be used for all sorts of purposes.
Node queue is good for creating arbitrary lists of content and this module has good views integration.
Search API - Great module for search. There are many companion modules like Search API Pages, Search API DB or Search API SOLR that you will need to install as well. With Search API a big advantage is that you can build a site using the database initially to save time and then add SOLR later if that is what the project requires.
A helpful SEO-based module that helps Drupal not appear to have duplicate URLs so that your site isn’t penalized by search engines.
A must have SEO-based module for every site.
Also a must have module for every site. This module allows you to add meta tag information to every page of your site.
A great module for adding 301 redirects to you site. You definitely want to use 301 redirects over just adding aliases and Google will penalize you for multiple aliases.
An SEO module for providing site maps to search engines.
Used to add media query support to older IE browsers. This is needed for any responsive site.
Spambot detection without all the hassle of user captchas. It uses a simple timestamp check essentially to figure out if a person or a machine is filling out a form.
Very handy module for access denied pages! I use this on every project now. This module redirects you to a user login when a user hits a page they do not have access to.
Utility / API Modules
From the mind Earl Miles, ctools is required by Views in Drupal 7
Entities are a new Drupal 7 concept, this module is required by a lot of other modules because it exposes an API to entities.
This module is essential if you need to create new view modes for entities such as content types.
This is required by the Media 2x module, and my knowledge of this module is that it let’s you do things like add fields to files.
Libraries are another new Drupal 7 concept. It is an API module for modules and I don’t know that much about it other than this is a required module for other common Drupal modules.
Useful module when a more up to date version of jQuery than what ships with Drupal core is requiered.
Great when used with the Features module. This module stores Drupal settings in code instead of the database. This is very handy for Features because it will auto-export a lot of settings for you when you export content types to features.
Has been around for a while and is still great for using placeholders in content, urls, etc.. Pretty much a standard module on every site.
These modules are great for adding locations, maps to your website.
Used to import a 3rd party font, such as Google Fonts.
This allows you to use Memcache instead of the database for cache tables and really helps the site scale as Drupal interacts with caches constantly. It really is important for higher trafficked websites.
This module is very necessary in the Cloud server era. A lot of cloud servers can’t send out email the old fashion way because the Cloud server IP’s are blocked which can be very frustrating. Using SMTP authentication for the site mail is a workaround for this issue.
Varnish is a must have module for large sites with a lot of anonymous traffic.