When I first started out building ConfsList, I decided to build it out using Ruby on Rails. The reason for this was because my latest work place is primarily a Rails shop and I had only a little bit of experience with Rails. I thought it would be a good idea to use Rails to build ConfsList, to accelerate my learning of Rails outside of work.
As I was building things out, I began to notice that I was slower to build things in Rails. This should’ve been obvious since it was a new framework for me. But it wasn’t at first. I just fixated on the slow velocity and I wanted to go quicker. So I created another project, but wrote it in Node. It was familiar and I was as able to make what felt like more progress in a shorter amount of time.
A few days past and the feeling crept up that I should give Rails another shot. So I started to build out the front-end, learning the ropes about partials and helpers. It wasn’t until I started to wire up the models and putting together the forms, that I felt lost and decided to hop back on Node, something I was more familiar.
Now back in Node, I felt excited and was speeding up again. Piecing together validators for forms, hooking together the raw SQL queries and setting up Handlebars and jQuery. What was interesting though, the time that I had spent in Rails was actually influencing how I was building out my app in Node. This time around though, I kept thinking about the Rails slogan of convention over configuration. I was spending so much time in Node, setting up the project then actually making progress on the application.
Taking a step back from the project, I wanted to think about what I valued in the framework that I was going to use to build ConfsList. I wanted ConfsList to be built where I can focus on building out features instead of worrying about the various pieces working together for the application. While this is aspirational, one day I may open up the code source for ConfsList to be worked on by others. If I do, I’ve seen the benefits of using Rails with other developers. Since it is opinionated, it is quicker to onboard other developers to a codebase.
So with that, I decided to focus on choosing Rails and not looking back to building ConfsList in Node. I must admit it is hard, since JavaScript is my jam. I enjoy building applications across the entire stack with using JavaScript and Node. So when I find myself running into walls in Rails, I have an urge to try and switch back to Node, but am learning to step away from the project at least for the day and come back and look at the problem I’m trying to solve in Rails the next day.
So while I’ve been flip-flopping between tech stacks the past weeks with ConfsList, from this point forward, I’m choosing to stick with Rails as ConfsList’s tech stack.