How to Empower Co-workers and Leverage Web Services to Publish Your Website

I manage all the websites and related services for the X PRIZE Foundation. In the latest iteration of the re-design of our Progressive Insurance Automotive X PRIZE website I wanted to streamline the workflow and enable several co-workers to easily publish content to our website. I’m pretty happy with how things turned out and wanted to share what we did so that it may help you thinking of ways you can utilize some of these some of these methods for your own website.

We use Drupal to power all of our in-house websites but these methods could be applied to any CMS (content management systems) that are out there. Our sites are visually rich as we have an in-house creative services department that generates a large number of videos and photos. We post these videos to our YouTube channel as well as our website. The workflow to get them on our website would normally take several steps of sending the request along with details which then get published through our CMS and eventually added to the site. This is just one example. We are a pretty small group and I wanted to find ways to reduce the timeframe, people, and steps involved to accomplish publishing content to our site.

So I looked at all the web services we were currently using to determine how we could leverage them in a home page redesign. The plan was to make it so the content could be dynamically updated by my co-workers by utilizing the services they were publishing content to already or in some cases create new ones. Below is an image with numbered areas that I will break down explaining how we accomplished this.

1. For our latest videos section we created a YouTube Playlist and pull the first four videos from there to populate this section. We’re utilizing the YouTube API to pull the thumbnail and video title to be displayed here. We also then utilize ThickBox to display the video and keep the user on our site. Our YouTube channel is managed by someone on our creative services team so they can easily control which videos appear here without having to request any changes to my team.

2. Our photos section is powered by a Flickr Set. A member of our creative services team who has full control to easily add or remove images to appear in this section. We are utilizing the Flickr API and also display the photos using ThickBox and allow you to scroll through them. To keep it fresh we randomly pull images from this set upon every page load.

3. For our top stories section we created an account on Delicious. A member of our communications team then bookmarks stories they want to appear here using a specific tag. The reason for the tag is that we have several that we use to publish to various areas of our websites. We then take the RSS feed generated by this tag and process it using the Simplepie script to display here.

4. For this section we took all the RSS feeds from the blogs of the teams that were competing and processed them through Simplepie to display here. The output was displayed in reverse chronological order and we limited it to only show a single post per team so that nobody could flood the feed. We also renamed several of the blog feed titles as necessary along with formatting the output and date.

Having distributed these publishing responsibilities to additional people in the company and utilizing externals services gives us many advantages. It removes web production involvement, it puts the publishing power in the hands of the department, and it speeds up the time to publish. It’s a win, win, win. Of course there are many considerations before this can be implemented. You need to make sure that your organization has the approval processes and ability to support it. You also need to have steps in place to deal with the reliance of external services which may include utilizing caching and local asset backups.

I’ve been very happy with the outcome thus far and  These are just some examples that I hope you find helpful. There are so many ways that web services can be utilized both for publishing content and streamlining workflow and I continue to look at ways to expand on these methods in other areas of our sites.

Lastly, I want to give a shout out to Blake Lucchesi who developed the functionality described in this post within Drupal for us.