I built Grimwar.com in 2009 because my friends played Magic the Gathering frequently and talked a lot about a collection manager that would allow them to see each others’ collections, save deck builds and create wishlists. It started as a simple database of cards but slowly grew into a fairly-full-featured site. The problem is, it started without any real vision for UX or code and thus things were just tacked on as fast as they could when people had new feature requests. It became a pain in the rear to maintain and I got busy with other projects.

Somehow over the last few years it’s grown to 1000 members. The increased activity, sloppy code and frequency of new sets has made it slow, exposed non-trivial bugs and made maintenance a pain. I feel like I have a responsibility to my users since many of them have taken the time to enter their entire collection into the site yet writing new code against the kludge that exists makes me feel dirty.

Enter CodeIgniter. I did a “due diligence” on PHP MVC frameworks awhile back and, long story short, decided that CodeIgniter is the best framework for me. My reasons for this are many but I can sum it up as the “perfect balance of abstraction and flexibility.”

So, I learned my way around their patterns but I hadn’t really set out to build a big project on the framework. The possibilities got me re-excited about Grimwar. Especially since a server migration left some things broken that I just didn’t want to fix (see previous comment about feeling dirty).

I started rebuilding Grimwar from scratch a little over a week ago. The speed at which it’s coming along is mind-boggling. It’ll still be awhile before its ready to replace the old site but suffice it to say the code is coming together almost 10x faster than the first time around. Not only that, it should be really easy to add new features and expand out ideas that never came to fruition the first time around. On top of that, it should be fairly reasonable to create a web service using the new code base. A web service could power direct Facebook integration, mobile applications, desktop collection managers that tie directly to the site and more.

Ultimately I’m really excited about this project. It’s a real testament to the gains that you can see from using a well-thought out framework. I will post a link to a live demo once I make a little more progress.

 

Note: I posted awhile back about some template work I was doing on Grimwar. That was a good start but it was too hard to keep things working while making the big changes I wanted to make in the code. So, I stopped trying to work within the existing codebase and started with this. Incidentally, the template parser I wrote turned out to be very useful for other things and was loosely based on CodeIgniter’s template system anyway.