Accessibility Search engine optimization Content Management New feature development Security Web site performance Marketing tools >> Search engine optimization / Content Management - capitalization? I would have thought if your not capitalizing 'search engine optimization' in this context then 'Content management' probably looks more natural without a capital M. >> Web site performance - website and web site - both derivations are used throughout the case study - For consistency, I would choose one and stick with it (website as one word is becoming more the norm). MicroAssist CEO Sanjay Nasta and CTO Hiram Kuykendall are longtime advocates of internet accessibility for individuals with visual, auditory or mobile impairments. We strive to make our site as accessible as possible, but faced difficulties with our previous CMS. The Drupal cms made it much simpler to meet our accessibility goals: >> Replace 'The Drupal cms' with 'Drupal', or capitalize CMS Menu items are rendered in lists by default. Tables are used only for tabular data and not for page layout. Correct order of headings allows for easy page navigation when using screen readers. We used the WAVE toolbar plug-in for FireFox to identify remaining issues. >> 'FireFox' should be 'Firefox' (and elsewhere - the fox is not a camel :) MicroAssist Inc., an Austin technology training and consulting company, has re-launched its web site using Drupal. The Drupal reconstruction allowed us to rapidly develop new features and streamline the content management process. Drupal developers Pavel Karoukin and Jacob Williams share a few of the techniques used to build the new site. >> I think 'Austin' should be replaced by 'Austin-based'. Site still is constant work in progress. >> replace 'still is' with 'is a'. For example our marketing team just asked to add feature to know where from visitor came to webform and surprisingly there is module for that - Visitor Path. >> Comma after 'For example' >> Sentence gets a bit messy :) Drupal allows us to be ready for any changes our business will require from us. And friendly community provides confidence that we always can solve any problem. >> First sentence is a bit clunky - the two sentences could be made into a single sentence. Effective search engine optimization starts from clean HTML code. We used Genesis base theme. This base theme provides: >> You could replace 'search engine optimization' with 'SEO', here (and elsewhere) if the abbreviation was introduced earlier. clean and valid HTML out of the box flexible layout elements and classes optimized placement of content early in source code with navigation and block content following >> Bullet points elsewhere begin with capitals In transferring the content from the old site to the new site, the Yahoo Terms Extractor module was a great time-saver. It extracted keywords from page content and put these as node tags, which later were used by Nodewords to add meta keywords. >> Yahoo Term Extraction is the service, Yahoo Terms is the module (as you correctly specified in the modules section, below) And, of course, we use the famous Pathauto module to keep our URLs clean and read-able. Below is the Google search result: >> readable is one word. >> There is no search result below. Drupal comes with a great UI for content management. Every content type in Drupal is a node that has the same UI for adding, changing, or removing content. Further extension of specific types of content is done with the help of the CCK module. >> 'Drupal comes with a great UI for content management.' - that's very generous :) >> Last sentence is a bit clunky, though it is clear what you mean. The Views module is very helpful in organizing posted content by category. >> Remove 'posted'. In order to discern which blocks our less html-savvy editors could access and which they could not, we use the Block Access module. >> Capitalize HTML. This helps these users focus on common tasks and not be overwhelmed with the number of administrative pages in Drupal. >> Perhaps: This helps our editors focus on common tasks without being overwhelmed by the number of administrative pages in Drupal. We also used the stock Drupal Book module to create an onsite manual for our content editors. With help of SWFTools and Flowplayer we put together short tutorials and screen casts on how to manage the website. >> 'stock' should be 'core', i think. New feature development and security >> Heading capitalization is a tad inconsistent in places Drupal provides great infrastructure for developing new code without changing existing code. The concepts of modules and hooks help a lot when you need to change behavior of some core component and at the same time keep from re-merging changes over and over again after each Drupal upgrade. >> Replace 'keep from' with 'avoids'. We leveraged these features when building modules for integrating with our legacy ColdFusion website. >> Replace 'for integrating with' with 'to integrate' >> This sentence might be better placed at the end of the previous paragraph, perhaps. Our custom module essentially acts as an http proxy and is plugged in to menu via menu hook system. >> http - capitalization >> 'menu hook' should be 'hook menu', I believe. To manage the updates for Drupal and our many third-party modules, we use Drush. Drush allows us to do a full site update with one command, “> drush up”. >> is '>' necessary here? However, even with Drush managing our code, we NEVER do code changes on the production server – and we strongly advise against doing so. Instead, we use a git repository. Each developer works on their own development machine – whether it is for development of new modules, changes to the theme or simple module updates using Drush. >> I think 'git' should be capitalized here, and elsewhere? Use of git version control system allows us to keep track of all changes, being able to revert to any revision if something goes wrong with most recent one and allows us to work on the code together. >> Bit of an unwieldy sentence. One important moment about using git for deployment (as well as any other deployment method) - keep “settings.php” file separated between development and production environments. >> Replace 'moment about' with 'thing to note when', perhaps. Drupal provides quite few performance features out of the box and more as third party modules. >> 'quite few' should be 'quite a few'. >> Replace 'as' with 'with'. First of all we activate aggregation of CSS and JS files. Drupal has many CSS and JS files and our theme, for ease of development, separates styles and javascript between several files. Without aggregation each file would need to be requested from the web server and browsers usually can handle only 6 simultaneous requests. Aggregating all style sheet and javascript files gave us faster page open speed. >> Replace 'javascript' with 'JavaScript'. We use Memcached with the help of the Memcache module as well as Boost for caching pages for anonymous users. The boost module allows us to generate static pages from dynamic content and serve these static pages to anonymous users without even firing Drupal code! The difference in serving static content is tremendous - 100ms with static page cache vs. 500ms with using built-in drupal database cache. >> Replace '500ms with using built-in drupal database cache' with '500ms using Drupal's built-in database cache'. We added the Webform module to the new web site. Our marketing team was thrilled by having ability to quickly build all kinds of forms. >> 'having ability' should be ''having the ability'. Or, perhaps, 'Our marketing team was thrilled with the ability to quickly build all kinds of forms.' While doing all kind of slide-shows on a customer’s website we developed a pattern for it. Basically, we create a new content type called “Slideshow”, remove the Body field and add a ImageField CCK field called “Slides”, with unlimited images to upload setting. >> 'doing all kind of' could be 'building all kinds of'. >> 'pattern' could be 'method'. >> 'a ImageField' should be 'an ImageField'. >> 'to upload setting' isn't really required or could be re-worded' ImageField provides 3 text fields for each image - Title, Alternate Text and Description. We needed [a] 4th field for URL. We installed [the] ImageField Extended module to add [a] URL field to [the] description of the image. >> You could add the odd 'a' or 'the' in the two previous sentences. >> '3' and '4th' would read better as three and fourth (small numbers, typically, are spelled out). These modules allowed us rapid project development focusing only on custom parts, reducing development time significantly. >> 'allowed us' could be 'enabled'. We host a lot of download-able material on our site for our students and random visitors and our marketing team wanted to know who and why downloads this. >> 'download-able' is fine without the hyphen (downloadable). >> 'random' could be 'anonymous'. >> 'who and why downloads this' needs amending. We came with idea of developing custom module for that - Squeeze Page (this module is still in development phase so please feel free to try it and post any feedback into issues queue). >> 'We came with idea of developing' could be 'We developed a' >> The text in parentheses could be a sentence in its own right (without parentheses). This module allows you to put some random page behind a web form which visitors are forced to complete before proceeding to this page. In our case we created a “Files page”, which is used to host templates, screen casts and other learning material. We put this page behind a web form and ask all visitors who want to download files to tell us about themselves and their interests. >> screen casts is fine as a single word (screencasts). Slide show on the home page >> ?