It's hard to know at what point to consult with a developer. At what point in an idea or project do you get a technical perspective? Development time can be expensive, but so is trying to force a square idea into a round technology.
Recently, a client we work with on a regular basis was trying to create a page with a lot of content. Initially we weren't aware that the client was working through this problem. The page consisted of over 100 links to videos that were organized into sections with a slide down/up functionality. And the videos—a mix of .mp4, .swf, and .srt (for captions)—also needed to play in popups. This page was stored in an ExpressionEngine entry, so each time it was edited, the client was editing a very long, unformatted chunk of HTML in an EE field. It was getting unwieldy.
When they asked us to take a look at the page to fix a problem with the video popup functionality, we knew there was a better way. In order to more easily manage the content, it needed to be separated from the display. Since the content mostly consisted of organized links to videos with titles and other small meta data, managing each one as an EE entry would have been overkill.
We came up with the solution of managing the content in JSON files, basically creating a flat database of media links. JSON files are easy to edit and add to. The client already had the content in a Google Docs Spreadsheets, so we converted the spreadsheets to .csv files and converted those to JSON with the help of CSV2JSON, a great little command line tool built with Node.js. This tool is nice because it supports nested JSON structures. We also created a few Mustache templates to hold the content. Here is an example of part of one of the templates:
We wrote some JavaScript to loop through the JSON and display the videos, set defaults for the size and optional caption files. This saved the client from hours of hair-pulling content management and having to write a ton of HTML. The templates also allow for more flexibility when styling and displaying.
I’m not sure the initial question will ever have a definitive answer: at what point do you bring in a developer to help solve a problem? But in my experience, consulting with a developer early on in the project usually saves time and money down the road. The answer may be simpler than you think.
Posted in #Solutions