Edit: AirTraffic is now live! Click here to check it out and create your account today!

Years ago when Bold was just getting started a good friend of ours, Joshua Blankenship, threw us the idea of having a status board of sorts for his large team. It would help give him a 30,000 foot view of their current workload, deliverables, timelines, etc–he called it Air Traffic Controller. We started building ATC two or three different times, never really fully fleshing it out and always at the mercy of our client services work.

Fast forward to 4 years later. As Bold has been growing we've been looking for ways to better manage our processes and workflows. One in particular was our sales flow. Currently Leslie and I have been splitting the sales inquiries and at times, we may ask each other where we are on each, or what next steps we need to take in order to close the sale. In an effort to better help each other as well as increase our turn-around time on estimates for prospective clients, I thought again of Air Traffic Controller and dug up the old code to see where our progress was at, with the goal to refactor it as a sales tracking tool–a much slimmed down version of the original.

The old code was useless; some old CodeIgniter stuff. Even if we wanted to move forward on that framework, Garrett's time was sparse and I couldn't bother him to help me get up and running. Instead, I turned to ExpressionEngine. I view ExpressionEngine differently than most folks. I see it as an interface to a database with an elegant backend, a vibrant community with a boat-load of add-ons, and a templating engine for easy output. Would it be possible to use ExpressionEngine as the backend for my new Air Traffic Controller?

In short, yes. I built a proof of concept in less than an hour using nothing but one channel in ExpressionEngine. I showed that proof of concept to Derek and asked him to design something around it. The next day he showed the screens you see above. From there, I took his design, converted it to markup and implemented it into ExpressionEngine templates. The last bit of code was a handful of Javascript functions to handle some of the pretty.

For those interested in how I built it in ExpressionEngine, I used Template Routes to setup a fake RESTful API and I used the Channel Form's to add/edit entries. Authentication is handled through ExpressionEngine's Member module. Adding new data to track is as simple as adding a new custom field in ExpressionEngine. I'm really stoked on how we were able to use ExpressionEngine as a rapid prototyping platform.

Two short days and we had our sales tool, AirTraffic. We've already begun tracking our new leads using AirTraffic and ideas are being implemented as quickly as we can think of them thanks to the power and flexibility of ExpressionEngine. Take a look at this final video of AirTraffic in action and let us know what you think. Does this look like a tool that would be beneficial to you or your team? Is there a glaring feature that we're missing or one that would push it over the top of Awesome Mountian? If you like what you see, or have thoughts, please shoot us an email. We'd love to hear from you.

You can check it out now at!

Noah Stokes

May 28, 2014