Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough
Aug 09 2017
Aug 09
August 9th, 2017

We are excited to announce the completion of the second major development phase of our engagement with Forcepoint: improving the authoring experience for editors and implementing a new design.

Reimagining the Editorial Experience

Four Kitchens originally launched Forcepoint’s spiffy new Drupal site in January 2016. Since then, Forcepoint’s marketing strategy has evolved, and they hired a marketing agency to perform some brand consulting, while Four Kitchens implemented their new approach in rebuilding the site. We also took the opportunity to revisit the editorial experience in Drupal’s administrative backend.

Four Kitchens has been using Paragraphs on some recent Drupal 8 projects and found it to be a compelling solution for clients that like to exert substantive editorial control at the individual page level—clients like Forcepoint. Providing content templates for markup that works hand in hand with the component-driven theming approach we favor is a primary benefit we get from using Paragraphs for body content.

Editorially, the introduction of Paragraphs gives Forcepoint a more flexible means of controlling content layout for individual pages without having to rely as heavily on Panels as we did for the initial launch. We’re still using Panels for boilerplate and some content type specific data rendering, but the reduced complexity required for editors to layout body content will allow their content to evolve and scale more easily.

In addition to using paragraphs for WYSIWYG content entry, Forcepoint editors are now also able to insert and rearrange related content, Views, Marketo forms, videos, and components that require more complex markup to render.

We’re big proponents of carefully crafted content models and structured data. Overusing Paragraphs runs the risk of removing some or even a lot of that structure. Used judiciously however, it allows us to give clients like Forcepoint the flexibility they want while still enforcing desirable constraints inherent in the design.


We’ve been working with Forcepoint for over a year now, and are incredibly proud of the solutions we’ve created with them. This kind of close relationship and collaboration is what we strive for with all of our partners. We thrive on understanding our partners’ underlying business challenges and goals, collaborating with their teams, and creating solutions that delight their customers.

The Forcepoint team was led by Chris Devidal as the project manager, working alongside Taylor Smith who acted as internal product owner. Jeff Tomlinson was technical lead and assisted Patrick Coffey who adeptly wrangled all the difficult backend issues. Significant frontend technical leadership was provided by Evan Willhite who worked with Brad Johnson to implement a challenging design. Props also go to Keith Halpin, Neela Joshi and Adam Bennett at Forcepoint for their many contributions.

Web Chef Jeff Tomlinson
Jeff Tomlinson

Jeff Tomlinson enjoys working with clients to provide them with smart solutions to realize their project’s goals. He loves riding his bicycle, too.

Jul 05 2017
Jul 05
July 5th, 2017

We’re happy to announce the new Global Academy for continuing Medical Education (GAME) site! GAME, by Frontline, provides doctors and medical professionals with the latest news and activities to sharpen their skills and keep abreast on the latest medical technologies and techniques.

As a followup to our launch of Frontline Medical communication’s MDEdge portal last October, the new GAME site takes all of the strengths of MDEdge—strong continuing education materials, interactive video reviews, content focused on keeping medical professionals well-trained—and wraps that in a fresh new package. The new GAME site is optimized for performance so that visitors can learn from their phones on-the-go, in the field on their tablets, or at their desktops in the office between meetings. Behind the scenes, site administrators have an interface that streamlines their workflow and allows them to focus on creating content.
[NB: Read our MDEdge launch announcement, here.]

The Project

Four Kitchens worked with the Frontline and GAME teams to…

  • migrate a bevy of static and dynamic content from their existing Typo3 CMS site and ten external ASP-based conference sites.
  • create a method to streamline canonical content sharing between the GAME site and the MDEdge portal through web standard APIs, and a mirror API for automated content creation from the portal to the GAME site.
  • create a single domain home for conferences originally resting on multiple source domains, redirecting as needed while keeping the source domains public for advertising use without requiring extra domain hosting.
  • provide functional test coverage across the platform for high-value functionality using Behat and CircleCI.
  • revise the design and UX of the site to help engage users directly with the content they were seeking.

Engineering and Development Specifics

Check out the new Global Academy for continuing Medical Education (GAME) site today!

  • built on Drupal 7
  • hosted on Pantheon Elite
  • code standards enforced with ESLint and PHP_CodeSniffer
  • site migration via custom migration module plugins and Google Docs mapping
  • custom MDEdge and other 3rd party integrations
  • style guide produced and reviewed using Emulsify

The Team

The Four Kitchens team of Web Chefs included James Todd as technical lead, Chris Roane as lead engineer, Randy Oest as the designer and frontend engineer, and Scott Riley as the project manager. Additional engineering work was completed by Diego Tejera, Justin Riddiough, and Web Chef Patrick Coffey.

Web Chef James Todd
James Todd

James tinkers with hardware, software, and everything in between.

Nov 02 2016
Nov 02
November 2nd, 2016

We are pleased to introduce to you and the world to the new website for the New York University Robert F. Wagner Graduate School of Public Service . NYU Wagner is a public policy school that offers a comprehensive curriculum in public and nonprofit administration, policy, and management. Over the course of only five months the site has been updated front-to-back to better serve the educational and community goals of Wagner’s students, faculty, and staff.

On the backend we’ve upgraded the site from Drupal 7 into a fresh and modern Drupal 8 installation, continuing our focus on keeping our clients current on technology for a longer project lifetime. On the frontend the site has fresh visuals and updated content to aid visitors as they explore or search the site. For site admins we integrated a living style guide into the site that stays up-to-date when changes to the Drupal theme are made.

Migrating to Drupal 8

The NYU Wagner team was eager to take this opportunity while migrating from Drupal 7 to Drupal 8 to streamline their architecture. We reviewed the previous architecture and consolidated the myriad specialized content types into a consistent collection of reusable and scalable content types.

The migration process was tricky. As work progressed on the site the Migration path between Drupal 7 and Drupal 8 was evolving, which necessitated updates mid-stream. The process also brought a few migration bugs to light which were fixed for this project and then submitted to the Drupal community so that they could get resolved.

Creating a Living Style Guide

Drupal 8 opens up a lot of new options for frontend development, thanks to the new template engine, Twig, and we used this to create a solution for Wagner’s site editors. One of the concerns on this project was making sure that site editors were consistent in the application of styles across the site. Enter a living style guide, built with KSS and Twig. KSS was used to organize and assemble the style guide and Twig was used for the style templates which were in turn were directly used in Drupal templates. Now when styles are updated in the theme, the style guide is too.

Engineering and Development Specifics

  • Drupal 8 site extended with contrib and custom modules
  • Migration advancements for Drupal 7 to Drupal 8 migrations
  • Migration of videos hosted on Vimeo and controls to keep all video information up-to-date from Vimeo
  • Living style guide for site editors by integrating twig components with Drupal templates
  • Config-based build utilizing Drupal 8 improvements to Aquifer, GitHub, and CircleCI

The Team

The Four Kitchens team was headed by Allan Chappell (backend engineer and migration) and included Alex Hicks (project manager), Jon Peck (backend engineer), Donna Habersaat (UX), Randy Oest (frontend engineer) and Ben Teegarden (frontend engineer). Thanks also to the NYU Wagner internal team of Lawrence Mirsky, Hollis Calhoun, Rachel Szala Grant, Chun Fang and Haris Ahmed.

Randy Oest
Randy Oest

Randy Oest is an avid Star Trek fan, plays too many board games, and bought his mother an iPad so that he wouldn't have to fix her computer anymore.

Oct 25 2016
Oct 25
October 25th, 2016

MDedge is a digital and print publisher providing resources for health industry professionals. The MDedge.com portal currently contains 35 separate properties including medical journals, specialized hubs, and news publications.

The Project

Four Kitchens worked with the MDedge team to…

  • migrate over 130,000 articles, quizzes, and other content from a variety of sources
  • create a two-way integration with their print publication tool, teambase, to enable the desired editorial workflow
  • create custom integrations with a number of 3rd-party vendors to provide powerful advertisement targeting and customer identity management
  • implement a content distribution system between all properties providing a deep level of customization alongside robust automation
  • provide functional test coverage for identified high-value functionality using behat and CircleCI

Timeline and Milestones.

The Discovery phase started in September 2015, with the Design and and Build phases in the following months. The new MDedge.com was deployed in three stages: The first launch included a single property in July 2016—the main MDedge.com site featuring OBG Management. This was fast-followed by a second launch phase that included fifteen properties in September 2016, while the remaining properties were launched in October 2016.

Engineering and development specifics

  • Drupal 7
  • hosted on Pantheon
  • functional test coverage with Behat
  • continuous integration builds on CircleCI
  • code standards enforced with ESLint and PHP_CodeSniffer
  • site migration
  • custom 3rd-party integrations

The Team

Peter Sieg – Technical Lead
Mike Klanac – Project Manager
Mike Minecki – Business Analyst
Caris Hurd – UX Designer
David Diers – Engineer
Randy Oest – Designer & Frontend Engineer
Brian Lewis – Frontend Engineer
Joe Tower – Frontend Engineer
with additional support from Alex Hicks and Suzy Bates

James Todd – Engineer
Roberto Cardenas – Engineer
Simon Mora – Engineer
Hans Riemenschneider – Frontend Engineer
Karl Kaufmann – Designer

Peter Sieg
Peter Sieg

Peter Sieg is an engineer who loves making things, learning, and solving problems.

Apr 03 2012
Apr 03

Epilepsy Action is the largest member-led epilepsy organisation in Britain, acting as the voice for the UK’s estimated 600,000 people with epilepsy. Originally, Ixis provided support for the community site www.forum4e.com, which consists of user forums and blogs, before successfully winning the contract for the full site migration of www.epilepsy.org.uk to Drupal, as well as on-going hosting and support. 

The aim was to improve user experience and increase the range of information available to create more opportunities to encourage support. Ixis was recently commissioned to upgrade the site to Drupal 7.  The new site provides easy access to rich content and the ability for users to customise their experience, personalising their homepage and the content that is delivered to them.  The site is now fully responsive using the Omega base theme, delivering the content direct to mobile devises such as iPad and iPhone.

The site went live in time for Purple Day, the worldwide epilepsy awareness day, held annually on 26 March.  On that day, we turned the site purple for visitors! 

Jul 06 2010
Jul 06

Intel recently partnered with Nokia to launch Meego, a Linux flavored operating system targeting the mobile and device platform space.

MeeGo is an open source, Linux project which brings together the Moblin project, headed up by Intel, and Maemo, by Nokia, into a single open source activity. MeeGo integrates the experience and skills of two significant development ecosystems, versed in communications and computing technologies. The MeeGo project believes these two pillars form the technical foundations for next generation platforms and usages in the mobile and device platforms space.

Intel is taking advantage of Drupal reqularly these days, including the Atom Developer Program, which I consulted on, and Meego.com. It only made sense to build the Meego help system with Drupal as well. Intel initially contacted me about helping with a services layer on top of the help system allowing devices to access help content via open web standards. This will still likely happen, but it was temporarily put on hold. In the mean time, we worked on the actual organization and display of the help topics. There are obviously many approaches to solving this fairly simple problem with Drupal, the most obviously probably being Taxonomy and Views. With the various minor customizations we wanted, though, and in the spirit of keeping things as lightweight as possible, I decided to forgo Views entirely and just use core Taxonomy module plus some fairly simple glue code to make it all work. The basic setup is as follows:

  • Create a vocabulary to hold all the help categories.
  • Define a menu item for each term in the vocabulary, with a custom page callback that varies depending on depth.
  • On the page callback, show the term description and any applicable nodes, followed by a list of all nodes grouped by child terms. There's some specific variation depending on the depth of the term being viewed.
  • Breadcrumbs and active menu items are also handled on the page callback.

There's a bit more there, but that's pretty much it. A few hundred lines of simple code, leveraging Drupal core and Taxonomy, and you have a nimble and flexible help system. At least in this case, I think this approach worked better than using Book or Views modules, as we would have spent lots of time fighting the default user experience those modules provide and/or dealing with complex overrides.

I did encounter one very frustrating bug/feature with the Taxonomy API. The call to taxonomy_select_nodes() will limit the number of returned nodes to the feed_default_items variable, or default to 10 if it's not set. There's no way to override this, or manage the setting in code (unless you are using StrongArm), which forces you to update the setting on any site you deploy this to.

Meego Help

Oct 10 2009
Oct 10

We all know Drupal can be a great out of the box content management solution, blogging platform, or social networking site. Especially when you take into account tools like CCK and Views. But what if you need to develop a more customized and focused application? Where does it make sense to use a more generalized and lower level framework like CakePHP or Rails? I don’t know if there’s a single answer to that question, certainly lots of opinions, including my own which I discussed at Open Source Bridge. Namely, the more singular the purpose of an application, the less it makes sense to use Drupal.

I’ve had the pleasure of working with One Economy the last couple years on several projects, including http://pic.tv, http://one-economy.com, and, most recently, the Make it Easy Toolbox. This last project fell under the gray area of being a good fit for Drupal, and, together with the One Economy team, we decided to give it a go. The application is still in active development, but so far so good.

What is the MIE Toolbox?

The MIE Toolbox is a CMS for distributing viral widgets around the web. A widget is distributed by inserting a javascript tag on a web page, referencing a given toolbox ID. The application than returns javascript which manipulates the DOM adding the toolbox content, CSS, images, scripts, etc. It consists of:

  • Toolbox, the core component of the system which is a container for all other items and is used to render the widgets.
  • Toolbox Themes, reusable styles applied to toolboxes
  • Basic Toolbox Items, where content is entered directly
  • RSS Toolbox Items, where content is pulled from a remote feed
  • Resource Locator Toolbox Items, which integrates with One Economy's RL API and presents users with a zip code entry form. Results are returned via AJAX and displayed in the toolbox item.

Background & Business Case

The first version of the Toolbox was developed using CakePHP, a very admirable PHP MVC framework. It was rough around the edges, though, and One Economy had much bigger plans for it. We began discussions on the next version, and initially were going to build on the existing system, still using CakePHP. Early on in the process, though, we kept seeing things that could be so easily handled by Drupal, yet required substantial work when developing from scratch. Finally, we held our collective breath, changed directions, and started over in Drupal. The main concerns were around CRUFT, scalability, and whether it would take more effort to do things the "Drupal way."

How Drupal Was Used

From the beginning an emphasis was placed on a light foot print, so we only enabled a handful of core modules. Side note, I fully support the current small core movement within the Drupal community. Drupal excels as a nimble and lightweight application platform, not as a catch all plug and play system. We used the following contributed modules.

  • admin_menu: Ease system navigation for CMS users.
  • CCK: Allow custom fields for toolboxes, toolbox themes, and toolbox items
  • colorpicker: Visual color picker for theme colors.
  • feedapi: API module for processing RSS feeds for feed toolbox items.
  • filefield: CCK filefield needed for image upload. Required by imagefield.
  • filefield_sources: Allows for the reuse of files for CCK filefields.
  • imageapi: Required by imagecache and imagefield.
  • imagefield: CCK field for uploading images.
  • imagecache: Creates image presets by processing uploaded images on the server. Used for toolbox item headers.
  • imce: Image browsing and uploading from the WYSIWYG editor.
  • imce_wysiwyg: Integrates IMCE and WYSIWYG
  • node_clone: Allows for the cloning of nodes.
  • views: Foundational module for creating lists of items. Used for organizing content in the CMS.
  • wysiwyg: Rich text editor for text areas.

And a handful of custom modules, which did most of the work.

  • feedapi_toolbox: Custom processor built on top of the feedapi, storing feed items in a lightweight custom schema rather than as nodes.
  • toolbox: Defines content types for toolboxes and toolbox themes, caching mechanism, generates the embed code, and provides a link checking mechanism which is run during cron.
  • toolbox_reports: Generates and displays reports for toolboxes and toolbox items.
  • toolbox_rl: Defines a content type for resource locator toolbox items, integrating with the RL API
  • toolbox_widget: Controls the rendering and display of the toolbox

System Diagram


Namely, we got loads of functionality for little development cost. This included, but was not limited to:

  • Reuse of toolbox items and themes across toolboxes via node reference
  • Role based security model for system administration
  • Basic information architecture for the CMS using a contributed theme, Zen
  • Simple way to create fields for the toolbox items using CCK
  • Administrative views of all content using Views, including exposed filters
  • Image upload and manipulation using Imagefield and Imagecache

In addition to these technical benefits, One Economy has a talented team of experienced Drupal developers who could work on the system and they were already using Drupal on several sites so had experience with administering and running Drupal.


Not many, to be honest. But to be fair and balanced, I feel I need to give it a go.

  • There were some square peg / round hole situations, such as when we used the taxonomy system to manage toolbox items statuses. In our case, status included such things as bad links. It ended up working well, and technically is a content classification, but not an obvious path to go down nonetheless.
  • We were a very experienced Drupal team, so all things Drupal were second nature to us, from development best practices to administering the site. I'm not sure I would recommend this approach if that wasn't the case. The Drupal learning curve is very steep, especially for more complex applications.

About One Economy

One Economy uses technology and information to enhance the lives of low-income people. We believe the quality of information directly affects the quality of one's life, and that improving quality of life depends heavily on access to technology.

The Public Internet Channel is part of a network of sites from One Economy Corp. PIC.tv uses high-quality multimedia to engage and inspire users, leading them to life-enhancing tools and information ranging from disease management, to surviving the recession, to living a more sustainable life.

The Make It Easy Toolbox provides the link between PIC.tv's inspiring programming and the Beehive's life-enhancing tools and resources. It is present next to every piece of video on PIC.tv, and soon will be syndicated across the Web through partner and other media sites to enhance the information and resources they already provide to their users.

Jul 22 2009
Jul 22

After reading 15 Essential Checks Before Launching Your Website from Smashing Magazine. I have decided to write my blog post on extra things you should be aware of when launching your new drupal site. This is assuming you have a development site on another server somewhere. Think of this as a checklist when launching.

read more

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web