Great Rails Repos for Learning

A great way to improve as a developer is to spend time with quality code. See how other developers solve issues. Dig into code you don’t understand, figure out how it works. Find elegant solutions to problems you’ve solved before.

Some codebases require so much contextual knowledge to understand, that they’re not great learning opportunities. For me, Rails falls into this category. However, there are some really clean codebases, with a clear purpose, that are treasure troves of ideas waiting to share their lessons.

This post is a list of those repositories. I’ll update it over time as I come across fitting repos.


PushType is a newer Rails CMS from the awesome devs at PushCode that is exactly what the Rails community needs. It is simple, elegant, and solves CMS requirements in a very non-intrusive and easy to implement way.

I’ve had to dig into the PushType code on many occasions and bend it to the needs of a project. I always learn something in the process. I think the quality of the code is excellent. Push Type is a Rails engine, and is broken into three gems - a core module, an admin module, and an authentication module. There are many lessons here.


Trailmix is a very simple SaaS product from Chris Hunt and Ben Orenstein for daily journaling. It sends you a daily email to capture your journal entry, and then sends you a random past entry for inspiration. The concept is very simple, and the code is clean, easy to understand, and well tested. This is a great repo for beginning Rails developers.


Mailboxer takes on the problem of internal app messaging. Messaging is a requirement that I end up implementing on many apps. I’ve built my own solution, and I’ve used Mailboxer. When you’ve built your own solution, and then replace your solution with a gem, it’s interesting to dig into how someone else went about the task. I find the implementation of mailboxer to be robust and interesting from a learning prospective. It’s well worth digging into.