Between the banner ads, email layouts, site updates and endless revisions, sometimes I get to be a part of a really cool project. That was the case on the new Devotchka website. I did the content management and administration back-end for this Flash site. This marks the first time I've created an administration tool for a Flash site using the AWESOME Symphony content management system.

I thought I'd go over some of the how and why of the back-end for this site. So read on and join the XML/XSLT THRILL RIDE!

Before I go any further, I want to give credit to the amazingly talented people that built this site. Brandon Wilson and Anthony Magliano are responsible for the incredible design. Brandon also did the bulk of the motion design. Heston Miles did the heavy lifting as far as the ActionScript was concerned. He's one smart dude. Liquid 9 is responsible for the great motion design on the intro and transition movies.

So, now into the nuts and bolts of how this site got done.

XML is probably the best way to get external data into a Flash movie. So when you have content inside a Flash site that needs to change on a regular basis, XML is your best friend. The challenge then becomes finding a good way to maintain all these XML documents. At it's very core, Symphony is made to manage content and display it as super-clean and well organized XML. This makes it the perfect tool to administrate a Flash site.

By the time I got involved in the project, the guys had developed the site using static XML files that were formed how they needed them to be. It was then my job to make Symphony store and display all this information in an identical format. XML makes this amazingly simple. When you're looking at a completed XML document, you're seeing the data structure. For instance, each song in the discography has a name and an MP3 association, each of those songs is part of an album that has its own attributes and all of those albums are part of the whole discography.

One challenge was getting over Flash's finicky treatment of external XML. When Flash asks for the XML and PHP/MySQL doesn't happen to render it fast enough, Flash will just give up and wreck your site. To overcome this, I wrote a really simple "Publish Updates" script and plugged it into the Symphony admin. This loads each data source and writes the resulting XML to static files. So when the band has finished doing their site updates in Symphony, they just hit this link and it writes out all the static XML files using the new data. This greatly reduces the server overhead since PHP/MySQL is only asked to render pages when the site is updated, not every time a user views the site. This method will also save the site in the event that PHP or the database decides to crap out.

The great thing about having all the site's content in Symphony is that it's all portable. For example the same content in the news section is used in the RSS feed. We can also use the content in Symphony to sit underneath the Flash movie so Google will still index all the content. So we're not just managing content for a Flash movie, we're managing content that can be rearranged and re-purposed for anything you could ever want to do.

So stop reading and check out the site already! www.devotchka.net