My holiday project for the last couple of weeks was to rework the Radiant Extension Registry. Sean Cribbs did a wonderful job a couple of years ago banging out the initial code, but we never had the opportunity to polish it off really well.
The extension registry was a originally a huge step forward for us. Before Sean’s work we had a wiki page and that was it. But as more and more extensions were added to the registry it was becoming increasingly clear that we needed to rework it a little. The extension listing wasn’t alphabetical or paginated. It was just one long list of extensions listed in the order that they happened to have been added to the registry. If you wanted to find something Ctrl+F was your only friend.
The dire need of the extension registry became especially apparent to me when I sat down with Sarah Allen and a couple of her friends in San Francisco in November. Sarah had contacted me about Radiant a couple of weeks before asking about the best way that she and a couple of like-minded developers could contribute to the Radiant community. When I mentioned that I was going to be out in San Francisco for Ruby Conf we decided to meet to talk about things in person.
As we talked I kept mentioning this extension or that extension. Some of the extensions they had heard of, but some of the extensions they didn’t even know existed. As we talked further I discovered that they did not even know that the Radiant Extension Registry existed. To my great shame I realized that a link to it had never been added to the navigation of the Radiant web site! A huge oversite on my part. What this meant was that Sarah and other newcomers to the Radiant community had assumed that the only way to find extensions was to search for them on GitHub or Google!
We were able to remedy the navigation problem pretty quickly, but the apparent flaws of the existing extension registry were beginning to weigh on me.
I had the good fortune this year of being able to be at home with my parents in Pennsylvania for a couple of weeks over Christmas. The holidays are always an important family time for us. I have two brothers and a sister. Three of us are still unmarried, so we typically try and spend as much time together during Christmas as we can. I decided to choose the extension registry as my holiday project – between all of the games and activities it would provide something to pour my mind into.
After a day or two I had a couple mockups done. Soliciting some help from the Radiant community I continued the project shortly after Christmas and we made great progress. Joel Oliveira helped me turn my mockups into HTML and got paperclip going so that extension authors could upload screenshots. I spent some time reworking the extension listing and authors listing adding pagination and a couple of additional fields. I also made a simple search page and reworked the home page.
One of the features that we added that I’m particularly excited about is the “Available for Hire” checkbox. When selected, a big “Available for Hire” badge will be displayed on your profile and next to your name in the authors listing, like this. I’m hoping that this concept will help turn the author’s listing into a bit of a professional directory for people who do Radiant projects. Hopefully if you need work on custom Radiant extensions for your web site will you will be able to find the right folks here.
Believe it or not, one of the highlights of the project was reworking the “New Extension” screen. Form design is one of the hardest aspects of modern web application design. Your forms need to communicate clearly to the user what needs to be done. It is a great challenge to put the right elements on the form and to organize it in a way that makes sense to the user. It easy to be too brief or, on the other hand, to be too wordy. Striking the right balance so that what you have written will be read and clearly understood is tricky. I think I came pretty close to striking that balance, but judge for yourself. You can see the old form
We’ve got a number of things that we would like to see added to the extension registry in the near future. If you are interested in helping out, fork the project on GitHub, write some code and tests, and submit a pull request. (You can also submit feature requests or bug reports on the issue tracker.) I would love to see someone take on the challenge of adding reviews and ratings to the system. I’m also playing around with the idea of making extension pages more like wiki pages with versioning and multi-author editing.
You can visit the new extension registry here.
© 2013 John W. Long