Making the Jump to Rails

Obe the monster representing CG Cookie at the Geneva, IL studio, sculpted by Lisa Schindler

Back in the early days of CG COOKIE, 2009, we were little more than a 3D and VFX blog, posting miscellaneous interviews, articles, and tutorials. Things stayed this way for a while, but gradually people began to take notice and our traffic grew. Soon we discovered that our tutorials were being exceptionally well received and accounted for the vast majority of our web traffic. With this understanding we began putting more emphasis on the training side of things, which brought with it a need for more connected content, such as tutorials in a series (rather than one-off blog posts). To do this we relied on any number of 3rd party WordPress plugins, which is the software that has powered CG Cookie from day one.

Growing up with WordPress

Out of the gate WordPress gave us the ability to publish our training but as CG Cookie grew our needs also grew. Over the next few years existing plugins didn’t cut it anymore, so we began doing more custom WordPress work, contracting my brother, Pippinsplugins and then hiring Nick Haskins as a full-time web developer to extend certain plugin features and build custom functionality for us. Little known fact, Easy Digital Downloads actually arose out of our needs and frustrations for a simple ecommerce solution that was focused on digital downloads, which simply didn’t exist.

Using WordPress we were able to build a functioning site, create the tutorial series, and even launch an exclusive membership to the site long before subscription and payment services like Recurly or Stripe were widely-available. By leveraging the quickly growing plugin ecosystem, WordPress enabled us to do far more than we ever could have done on our own. But that’s begun to change.

Up until now WordPress has served us very well. I’m confident in saying WordPress has been instrumental in our success to this point. It gave us the means to reach an audience and the tools to manage the content. However, with the launch of CG Cookie Five we’ve put a stronger emphasis on the learning experience, versus just the content, including active lesson tracking, exercise submissions, curriculum progression, etc. A content management system with a custom skin is no longer sufficient for what we want to do: enable independent artists to succeed by building a sustainable business that’s run remotely, allowing anyone, anywhere, to learn the tools of the trade.

Scaling up with growing pains

Like many projects, the first steps of starting CG Cookie as an online business were easy. From the initial idea, purchasing a domain, to putting something online. Getting online was easy, staying online is more difficult.

Running a business is hard.

You have to grow your presence, attract an audience, and sustain it, all while making sure the content you’re offering is good; to say nothing of the technical challenges that come with maintaining a large website. Additionally, depending on what you’re doing it can be even harder if you don’t know how to code or don’t have a web developer on staff, which was our scenario in the beginning. This is where WordPress came in for us.

Over the years our infrastructure has gotten a bit shaky. We have outgrown what WordPress is typically designed to do without extensive customization and fine-tuning. Without going into much detail, the main issues revolve around legacy architectural designs that don’t function well with a user database that’s approaching 350,000.

These issues have become particularly prevalent in the last few months, which you’ve likely noticed through the many instances of CG Cookie crashing and going offline.

Moving beyond WordPress

It’s for these reasons, the focus on your whole learning experience and improving the reliability, we’ve made the decision to move our entire infrastructure over to a more modern and flexible web framework, Ruby on Rails. This includes CG Cookie and the Blender Market.

The move to Rails is going to take anywhere from 6–12 months and is already underway. We are doing it in stages, starting with a small, as-of-yet unannounced project, then the Blender Market, and finally the main CG Cookie site.

During this project we will be revisiting every aspect of CG Cookie and taking the opportunity to re-evaluate, re-design, and improve each piece. Exercises in particular need some extra love to smooth out the rough edges. Additionally we’ll be working to clean up our database, which has become a bit overgrown in the last few years, aiming to improve performance across the board.

The impact on you

Our goal with this move is to build a better experience for you and all the CG Cookie fans, that is both faster and more reliable.

Aside from new feature development, and more reliability, initially you shouldn’t notice too many changes. This first stage is all about building a better foundation, which then will enable much more progress in the future. However, due to the extensive nature of the migration we have put most new feature development on-hold until we’ve finished building out the sites on the new framework. Aside from bugs and security issues, which we’ll continue to address as they come up, you won’t see many big changes to CG Cookie until the Rails migration is finished.

Even though we’re only just now announcing this move publically, I’m happy to say that the migration is well under way. Thanks to the excellent work of Nick Haskins, our lead web developer, the Blender Market is about 80% done. It is almost ready for vendor beta testing and we’re about to begin work on the foundation for the main education site.

This move to Ruby on Rails has been a great learning experience for our small team so far, particularly for myself and Nick, as we’re learning new things every day and really enjoying the process. My hope is you’ll enjoy the outcome as much as we are enjoying building it.

Stay tuned!