As a website design agency, we use Drupal as the base for our websites, giving us a good website development platform to start from.
Drupal allows us to mould it's already sturdy and secure code to our ways, allowing us to produce high quality websites in less time than most companies.
The content management system is already loaded with features, but most of the time our clients want that little bit extra bang for their website. To do this, we need to use various different modules to plugin to the core code and extend Drupal's reach.
Administration Menu
While not the most important module out there, it does speed up website development hugely. This module adds a menu for administrators and gives you quick and easy access to pages that might be 1 or 2 layers down in Drupal's default administration back-end.
Download this module
Panels
Although this module has been around for quite some time, we've only just discovered the joys of Panels. It divides the page up in to sections (or rather 'panes') and in these panes you can add nodes and blocks and arrange them on a nice AJAX GUI.
Download this module
CCK (Content Construction Kit)
Arguably one of the best modules out there for Drupal. So good in fact that it has made it in to the core code for Drupal 7 - well, the best bits of it have anyway. This module allows you to create custom content types, employing extra data types such as selects, links, images, files and so on and so forth. If you're not using this module, you’re doing it wrong!
Download this module
Views
Probably the second most important module for Drupal website development. Views lets you select nodes that fit a defined criteria (the same content type for example) and display them all on one page. Very handy for creating a custom news feed for your site! Of course, it's not just that simple - in the latest version of the module it allows you to do all sorts of clever things without getting your hands (too) dirty when playing with SQL statements.
Download this module
MultiBlock
A nice little module we're recently stumbled across that allows you to clone blocks. One of the big problem (we've found anyway) is that you can only assign a block to one region. MultiBlock creates another instance of that block to place in another region, so you can have a block on the front page on the left, then on an internal page show it on the right. Another great thing about it is that you only need to change the parent block and the instance changes as well!
Download this module
Imagecache
A handy little module that allows you to create presets for resizing images on the fly. It even saves the image after the first time it's been resized so it’s not doing it every time. Imagecache doesn't just handle resizing, you can also crop, convert to grey scale, rotate and sharpen - all in one preset if you so wish.
Download this module
SEO Checklist
Those of you who are wondering how to start search engine optimisation on a Drupal website would be helped by starting here. The module builds a checklist in the back-end of the website and tells you the steps to make the site "Google ready", which modules to install, how to sign-up to different accounts such as Google, Yahoo and Live, analytics and lots of other fun stuff. I won't spoil the surprise...
Download this module
Devel
A very useful module for website design and development using Drupal. What this little gem does is provide an AJAX driven page where you can examine the contents of $node, which is the main content for that particular node. It allows you to step through every piece of information held within the $node object.
Download this module
Webform
Very simply, creates a form for your website so that your users can feed information back to you. You can see it in use on this site in the footer and on the contact page. You can create exactly which fields you want to use, as well as set validation for each field.
Download this module
Pathauto
This module allows you to set up path templates for each content type, taxonomy or user path used on your Drupal website. Very handy if you have certain content types for certain parts of your site, for instance a news content type might always have the path www.domain.com/news/title-of-news-story. This module can be extended further by using the Token module to allow you to add some flexibility to your paths, such as adding dates a la www.domain.com/news/[yyyy]/[mm]/title-of-news-story.
Download this module