I understand the front-end frameworks are the frenzy these days and I've caved into that and have built an Angular app that I'm very proud of. It did what it has to do in the best way possible and Angular gave a big hand on that.
Now with another CMS type of a website, with mobile channel as well, I decided to not go the Angular route and go with the time-tested Ruby on Rails stack. Since it's new to me I was struggling all along to get something going quick. I've been making progress but it's a hard push every time and unfortunately the support articles (aka. Stackoverflow) out there are mostly a few years old. I feel like I caught this train a few stations late.
Do you all think it's wise to stick with the Rails stack and build APIs to augment the mobile channel? Some of cool things I like with Rails are Devise and Scaffolding (even though I tweaked the hell out of it!). I'm, so far, not a super fan of ActiveRecord as I'm comfortable with writing SQL queries and feel like I can get a lot more done than to obey to ActiveRecords' requirements. I'm constantly on the sideline and rethinking whether it's the right move to stick with the Rails stack these days.
Can any of suggest if it's wise decision or not? Since it's a CMS kind of a site SEO would play a major role...FYI.
Rails, although not the latest cool kid, is still quite relevant and a great choice for a CMS kind of site. Its undoubtedly one of the fastest ways to build web apps.
However there's a strong case for using a client-side framework like Angular, Ember or Flux, if you want to make your app super interactive. And thankfully there's tons of support (Angular, Ember ) for doing that in rails. One of the great things about rails is that it has a community which is very strong and rails somehow always brings things to table that helps it stay relevant. Like the new Rails 5 brings in ActionCable, which is a framework for real-time communication over web-sockets , inbuilt. It also integrates rails-api into core Rails project. Which I think is inspired by the fact that most people now use rails to build apis to serve more than one client. Its good to see how rails has acknowledged and serves the new trends in web development (SPA).
Regarding the SO support, because Rails has stayed here for over 10 year and has gone through tons of changes, lot of answers are outdated but I still believe if you ask questions on rails 5, there will be a lot of people who will be willing to help. And CMS is really one of the finer cases to use rails.
I'd be really curious to get some feedback on if it's wise to stick with Ruby on Rails these days as the help out there on SO and such are so outdated now. Anyone?
RoR is a great stack! But I am not a big fan of rendering HTML server side using traditional templating engines. Also if you develop using just RoR and vanilla JS or jQuery, the front-end code may get unmaintainable once your project grows.
According to me Angular and React are two great libraries and should be used with backend frameworks like Rails. You can build your app using Rails and Angular and use the same APIs (or may be some tweaks are needed) for mobile clients. But the only downside is that you need to pre-render your pages on the server to be SEO friendly. You can either do that yourself or use a service like Prerender.io.
On the other hand if you choose to use React and RoR you'll have best of both the worlds. You can build APIs in Rails and use both client & server side rendering. I think isomorphic apps are the future and should be used whenever possible. This fixes your SEO issue and also gives you power to use same APIs for mobile clients.
How to build isomorphic apps using React - Found this interesting.
How to use React with Rails - Another interesting article
Hope this helps!