CocoaPods Beta

I believe design is important. CocoaPods is probably the most public facing Objective-C project. Applying design to open source projects is a sign of maturity, and of stability. Whilst we're still not 1.0 yet, having a cohesive brand is a step towards that.

This post documents some of the work involved in making the new CocoaPods web properties.

The CocoaPods devs welcomed me with open arms after I started regularly contributing via the Specs repo, and encouraged by their work I started a project called CocoaDocs. Once it became quite obvious that CocoaDocs was going to be an important part of the CocoaPods ecosystem I branded it with the CocoaPods styling, and it was treated as a sister project.

Around the same time we were seeing issues with documentation, it was user contributed and spread out among the cocoapods website and a collection of wikis, so Michele Titolo & I started to mock out the guides structure and Michele started collating documents and creating a single source for the markdown files.

Andy and I went back and forth on logos for a few months until we came up with the version shown in the top left and in this blog post announcing the new blog. Andy (quite correctly) believed that we couldn't just announce a logo without showing it in context, that meant re-thinking the homepage. I spent some time with Florian Hanke digging into the site analytics to try and get an understanding how people were using the current website. Turns out everyone is using it to search for Pods. Who'd have thought?

So that gave us a direction for what the site should orient itself towards. We knew that search should be a high priority, and that a lot of the documentation should move into a guide leaving a lot more breathing space in the homepage. The new design was worked on in secret until we felt there was enough context around the branding. You can't re-think something this big in a weekend, and showing incremental work isn't always the best option when you are making drastic moves. Luckily Eloy Durán & Fabio Pelosin trusted that we knew what we were doing when I said that the old CocoaPod illustration will have to go.

With buy-in from the rest of the team, and some helpful tips we all discussed the scope of the changes. We'd have to break the current website into 3 separate projects, sharing assets, design and code as much as possible. This meant we could incrementally build the sites as staticly generated content and upload it to github. It was an easy sell that we needed a blog, and it was an easy sell that we should split out the CocoaPods twitter into one specifically for new Pods. The blog meant we could wax lyrical about new releases, keep people up to date and have a sense of permenance in the CocoaPods team voice. Keith Smiley started building the blog the moment it had some mockups. Setting up a shared repo for all our assets and design notes.

Fabio & I announced the redesign at NSSpain. We had stickers. It went well.

Building this blog gave us chance to start dealing with some of the navigation issues that just aren't obvious during design stage. Andy & I iterated quickly on design and implementation. We used Bootstrap 3 to build the sites and I'm definitely a fan of the system. Everyone on the CocoaPods team took an OSS break for iOS7. Our developers chat room was a desert for a while. Once that hurdle had been jumped a few of us got started thinking about full fleshing the guides out.

The guides were an interesting navigation problem, we knew roughly the overall structure and a lot of the problems came in dealing with heirarchy and ensuring consistency in the documentation. It took one sentence from Artsy's head designer Robert Lenne and the index page was figured out.

During this period Florian started work on the API changes required for the new site, as it was to be a static site meaning we can dogfood our now 2 year old API. We've started work on splitting the API out into it's own project to accomodate the ideas Andy & I wanted for the search experience. Florian has done an amazing job on the feel of the search interface, and it is super fast. We just worked off and on over the course of a few weeks together on the cocoapods.org domain until it felt right.

There's still a bunch of work to be done, like the about page, and some more work on mobile, design tweaks, but overall the experience is definitely a step forwards. We've had a lot of help from everyone in the core team, and people who have taken the time to discuss ideas with me and the rest of the team. This is one step of many, and it will probably be a while before we remove that beta in the top corner. In true open source style we take both pull requests and issues, and as much of the content has a button to go directly to the source to submit changes.

Let us know what you think either on twitter (@CocoaPods) or if your idea is too big for 140 characters, write us an issue. This was a team effort, and I'm super proud to have been a part of it. !m!