Switching from Flask to Ruby on Rails for FIRSTMastery


I started working on FIRSTMastery a little over a year ago.

At the beginning of this summer, I thought about switching frameworks. I decided that if I am able to replicate at least about 80% of the current platform in Ruby on Rails then it was worth continuing the project in Rails. After replicating about 80-90% of the current functionality in the Flask stack I decided that it's time to switch.

Of course, there are many factors that made replicating the current Flask implementation in Ruby on Rails much easier than it would have been when I started out. I have a direction now and I know what needs to get done. Instead of spending weeks deciding on the best approach to solving a problem, I have already resolved them so I just have to redo the solutions from the Flask implementation. These factors aside, however, I see a lot of benefits to switching to Rails. Although Rails might be a beast, but what's great is that it has lots of features out of the box that make the development easier. I had been replicating many of these features in my Flask implementation. Going in the direction of Rails makes these development efforts much easier.

I debated which framework to use before the start of the project but decided to go with Flask at the time because I could use AppEngine, which would leverage a lot of things such as load balancing, resource management etc... for me, so I wouldn't have to worry about them. AppEngine's recent updates in support for Ruby have also partially influenced my decision to switch frameworks now. In the process of working on the Flask implementation, I learned a lot of things that made switching to Rails easier. I've been able to easily piece things together.

It was a tedious process before re-implementing lots of features that were not available out of the box for the Flask implementation and I in no way think that because I have switched to Rails it's the end of that. I am very happy with the new direction and find it to be more productive than when I was trying to re-invent the wheel with the Flask implementation.

I intend to keep the older code base online in another GitHub repo (here). If you want to play with the old code base, you are welcome to. I put a lot of effort into it and it'd be pretty cool if you find anything interesting or helpful to you in it.

I was worried that switching to Rails might be too drastic of a move but, with the current success and the project still in its beginning phases, I am not too worried. I hope that soon enough the platform will be ready for the FIRST community and all those who are interested in learning about FIRST. FIRST has surely influenced me greatly and all those helping me out in various ways to make this happen, I can't wait for it to be open to the public!!!