Each week we bring you an interview with a different open source developer or designer in the community. This week’s interview is with Brandon Mathis, freelance web and iOS designer , Compass contributor, and creator of Octopress and Fancy Buttons. If you’re interested in learning more about what Brandon’s up to you can follow him on his blog, on Twitter, and on GitHub.
Tell us a bit about yourself. Who are you and what do you do?
I’m an independent web and iOS application designer living just outside of Birmingham, Alabama. I’m married to an amazing woman and father to a delightful two year-old boy who will soon have a new little brother or sister in July.
What open source projects do you work on?
I’m a core contributor to Compass, a truly wonderful project which gives front-end designers and developers the tools to easily build their own CSS frameworks powered by Sass. It’s chock full of the web’s best reusable patterns and provides mixins which make writing complex CSS3 styles a breeze. Compass makes it easy to share frameworks and extensions enabling designers to participate in open source like never before.
In 2009 I released fancy-buttons a very popular Compass extension which makes it absurdly simple to create beautiful CSS3 buttons which gracefully degrade for older browsers. I’m right in the middle of the 2.0 release which should be coming out in the next month or so. My goal for fancy-buttons 2.0 is to provide a curated CSS3 button library, equipping users with the finest selection of beautiful buttons from around the web. Basically, I’m snagging button styles that strike my fancy and recreating them with dynamic Sass color transformations, so you can generate BonBon style buttons with a single line of Sass, and easily change colors or other properties without having to muck about with gobs of complex CSS3. It’s really powerful.
I love how easily Sass lets me work with color, and as a result I do almost all of my web design these days in-browser. Sometimes I have a hard time envisioning what color adjustments I want, and to help, I built a web based HSL Color Picker and released the code on Github.
Currently the project I’m spending most of my time on is Octopress which is a blogging framework based on Jekyll (the static site generator powering Github Pages) and I’ll be releasing version 2.0 by the time this hits the press, or shortly afterwards. Basically, Octopress is a beautifully designed starting point for a Jekyll blog, though I have plans to expand Octopress to more static blogging frameworks in the future.
What inspired you to work on Octopress?
I was working on fancy-buttons and really starting to get into writing mixins for Compass and sharing code with the Compass community. I wanted to be able to easily share code on my blog and write tutorials, but with most blogging software I was at the mercy of TinyMCE or a host of other heinous browser based text editors. I had a WordPress blog and I was sick of the maintenance effort with updates, plugins, spammers, and database issues. I looked around, but none of the hosted solutions were much better.
Then, I stumbled onto Jekyll which allowed me work in my favorite text editor, freed me from the performance issues of the database, and gave me the freedom to publish my static site anywhere. Getting a Jekyll blog started is no easy task however. Jekyll is just an opinionated static file generator and it doesn’t ship with a template, or even an RSS feed. It’s a lot of work to get a high quality blog set up and I saw a real need for a well designed starting point for Jekyll.
I built Octopress to make it easy for developers to get started with Jekyll blogging. They simply fork the Octopress repository and they have a beautifully designed blog, complete with a flexible templating system, Compass and Sass, a set of rake tasks to simplify various tasks, a curated list of plugins and third party integrations like Disqus comments, and Delicious and Twitter feeds in the sidebar.
What plans do you have for Octopress?
Octopress 2.0 has been rewritten from the ground up with semantic HTML5 templates, a new theming system, and smashing support for mobile browsers with the “320 and up” approach to media queries. It’s also based on the latest and greatest Jekyll release, complete with some great new plugins and even easier configuration. I’ve ported the Solarized syntax highlighting system to Sass for gorgeously styled code sharing, and I’ve included a great little plugin for fetching and embedding gists from Github so they show up in RSS feeds.
Right now I’m just finishing up the documentation and going through a final polishing run.
If you started a new open source project today, what would it be?
I’ve recently designed a really amazing iOS web application (not for public use, sorry) which was nearly indistinguishable from a native experience. I’d love to find the time to package up all the work I did for that and release a web application kit for iOS. Maybe someday.
What attributes make for a great open source project?
A good open source project must fill a need, but it should also be something that other people can contribute to easily. This requires willingness to co-create with people at different levels of commitment and expertise. A good open source project is well documented and has core team members who are willing to support its users.
Do you have any advice for aspiring open source designers?
Become fluent with at least one system of version control (I like Git). Don’t be afraid to ship something that isn’t perfect yet. It’s a great learning experience to watch others improve your work and it’s an awesome feeling when someone solves a problem you couldn’t solve or didn’t know you had.
As a freelance designer I work for many different clients, all for different periods of time. But with open source, I have the opportunity to continually make progress on a project as I learn and grow in my career. Pick a project and stick with it.