part 1 | part 2
In these two posts I’m going to tell the story of how miggle transformed from a company that predominantly provided out-of-hours editorial content and content management services to one which pivoted and grew to become a successful web development agency by virtue of embracing open source. You can see the related podcast for it here.
I founded miggle in 2007 as a lifestyle business in my home city of Brighton and Hove in England. Prior to that I’d worked at Yahoo! for seven years - my daily commute regularly punctuated by a weekly trip to somewhere on the continent and two weeks a quarter in California. It was not an environment in which I wanted to become a Dad and miggle gave me the opportunity to set up something closer to home and be near the kids when they were little. That was my business plan.
But how would I make money?
Aside from that I had two ideas. The first was that I saw an opportunity to provide the UK markets of larger players like MSN, Yahoo!, AOL and Sky with functionality, like microsites, interactive features, that would allow them to differentiate locally. From my time at Yahoo! I knew there were plenty of senior managers who had the budget to move some of those initiatives forward, even though, in an environment where headcount was aggressively managed and focussed on a limited amount of global product priorities, that they didn’t have the people.
It was a sound idea - and it worked - sort of… Because, although it yielded me work, it didn’t bring in the sort of web development work I expected, but rather, requests for content - that being a key ingredient which allowed media owners to differentiate locally.
Consequently we did a huge amount of work for AOL, before Huffington Post really got started, we provided lots of content and resource to BSkyB - and we managed the Yahoo! homepage in the UK on an out-of-hours basis - mornings, evenings, weekends and holidays for three years. Doing those sort of unsocial shifts got us a really decent name for reliability - which helped build a solid reputation. All in all the content management work that we did made up over 80% of our revenues in our first three years from 2007. It was stupendously good for establishing a solid, even cashflow and the clients were pretty high profile.
However, on a personal level I found it a bit dull. While the work engaged my team, who were all enthused by the ever changing news and current affairs agenda, the actual tasks were the same day in day out. I hadn’t set up miggle to be a content business.
My second idea was to provide a bespoke web development build service to small businesses. That was more successful in terms of keeping us busy, but it was difficult to make any money out of it. Why? Well, those reasons are fodder for at least another two posts….
Early web development at miggle
When I won my first web build in 2007 miggle was just two in number. And as number two was a content manager, it fell upon my broad young shoulders to dust off my hands-on development skills, which had lain dormant for a decade.
There were three obvious options as I saw it. Joomla 1.0, WordPress 2.0.6 and Drupal 5. Back in 2007 some of the common things you still hear today about the three of these in comparison were probably at their genesis. It’s amazing how quickly entrenched a view point on something can become, that even in the fast moving world of the web it doesn’t shift seismically for years. Drupal has a steep learning curve, was a nightmare to install, but was more powerful once you’d got your head around it. WordPress was easy, but you’d hit a ceiling quickly. Joomla was somewhere in the middle.
In 2007 WordPress was easy to discount. It was a decent blogging option, but a lousy CMS. I installed Drupal. I looked at the homepage. I tried to bridge the gap in my head between that and what I wanted to build. I read a couple of 'easy start’ tutorials in the absence of any real manual, while in the background my printer reeled of all 240+ pages of the Joomla manual.
I liked that fact that Joomla had a manual - and it was a far easier read than anything I’d found on Drupal - and on install I liked the look of the product. But, as far as I could see at the time there wasn’t an easy way of making a browsable hierarchy more than three layers deep, without working out where to start hacking. And my PHP skills were too rusty. Just as well. Back then I don’t think too many of us were thinking about the downsides of hacking core. And I certainly at that stage wasn’t using version control (although I’d used it before).
Should I write my own CMS I thought? I’d really pushed back in my head on that, which was why I was evaluating what was out there. There was just no point in re-inventing wheels. Existing CMS would get better (although back then I think I thought this would purely happen as a result of market forces - not because of the power of community) and their improvement would mean they’d keep up to date with advances in technology. It should also be easier to go and find people who could use an existing CMS. Sound logic. But, in the absence of finding a CMS which wholly suited my needs, with neither the skills or time to start hacking something I didn’t really understand, I decided I’d build my own. So I did - and miggleCMS was born.
I enjoyed getting back into coding - but I probably enjoyed it too much. There’d be days where I’d not even dress or eat. I coded to the exclusion of doing anything else with my business. For my front-end I’d chosen to use Yahoo! Developer Network templates and the first version of the CMS was built around managing these. Certain bits of content could be assigned to various areas of the page - and there was a basic module system where certain features could be used on different sites.
Improving our CMS
My dusted off skills hit a ceiling pretty quickly though - and as such it took me longer and longer to make incremental improvements. So I hired in a *proper* developer to help move things forward. He had absolutely no interest in using anything else anyone else had done - reinventing wheels was where he was at - so development continued apace. We found a client who wanted their own proprietary CMS to sell to their clients - so development was funded. It was a land of milk and honey.
Except it wasn’t. We instead had created a business which was in the line of making rods for backs. The more sites we launched, the more our support overhead grew. After a year or so my *proper* developer moved on. We struggled to keep up and I started to think it was time to start looking again at getting the benefits of open source. At the same time I’d realised there was no easy way of making money in the small business market by offering a bespoke service. Too often deals just came down to price and it was always a race to the bottom. About this time we’d probably noticed that we were losing a lot of small business deals to people who were cheaper, who were using what was a better CMS than miggleCMS - WordPress - which had grown in popularity as the world had become more blog crazy. Because we were going to leave the small business market, we didn’t want to leave our existing clients stuff with an unsupported proprietary CMS, so we made miggleCMS open source.
We started to seek out larger projects and our strategy then just became one of finding the best CMS for the use case we were asked to deliver. The shift to open source in 2010 and the slightly larger projects we felt able to take on meant for the first time web development revenues accounted for more than 20% of our turnover We did WordPress projects, we did Open-X projects, we did ModX projects and we used a couple of e-commerce solutions. More and more I started to come across Drupal modules or distributions which might do what I needed, but each time I installed Drupal I still couldn’t bridge that gap in my head from homepage to the site I wanted.
We were still some way away from being able to appreciate that Drupal was a lego kit in which we could build trucks, helicopters, boats and cars - and spent too much time evaluating and working with predominantly single use case CMS - i.e. the truck, the car and the plane - even at times managing two concurrently to serve situations where a customer wanted a shop with a blog.
And then in the midst of this, an ex-client asked a security expert to do an audit of miggleCMS, which they were still using, which they were able to do given the code was freely available. They found a vulnerability, in that it was possible to determine from a failed login attempt whether the username was valid or not, making it easier to brute force a valid username - leaving it then possible to brute force a password. We felt obliged to fix it, but at the same time it was no longer where we were focussing our efforts. It was however a decent example of what can happen when you open up your code for review. How any small team can think that the code they write is secure beyond measure solely on the basis that it’s not yet been hacked is ludicrous, if it’s never been opened up for review.
Finally, one day we got a call from ITV, the UK’s biggest commercial broadcaster. They liked what we’d done for Yahoo!, reliably supplying them with resource day in day out, for so many years. They wanted us to do the same for them, but rather than it being with editorial staff, they needed it for Drupal developers, who they’d been struggling to find. I can find those I thought, because I just need to find PHP developers and point them in Drupal’s direction, and that will be easy. How misguided was that! I found finding either Drupal developers or PHP developers who wanted to learn Drupal an almost impossibility. But there was one saving grace. They also gave us the code bases of a bunch of already built sites which were in production in Drupal 6. And it was that which allowed me to finally bridge that gap between the vanilla homepage I’d only ever got as far as and a completed experience - which gave us in the office something to work backwards from. Of course the fact that there was a seeming lack of Drupal developers, but a demand for them struck me as a decent opportunity. And so the miggle business changed.