Why Would You Choose Strapi over Node or Rails?

I’m novice developer with some experience in JS, HTML, and CSS.

My goal is to build a web app that resembles a very lightweight version of yelp.com.

The essential functionality needed is:
Admins can:

  • add, edit, delete, both products users, and user reviews

users can:

  • rate, review, and favorite products
  • filter products using forms
  • Search
  • Create accounts

Strong SEO

  • SSR (with nuxtjs/nextjs or templating engine erb,pugjs)

From a development point of view. The most important factors for me are

  • Development speed. (how fast can I build a working v1)
  • Simplicity & Maintainability
  • Gentle learning curve
  • Learning resources and support

Given the above what are the PROS and CONS of Strapi + nuxt/next.js compared to a traditional SSR monolith built with Rails/erb, node/pugjs etc

Perfect use for Strapi here, we cover all those bases

Doable but this would be handled in your “Frontend” making the API requests to Strapi (certain aspects may require some custom controllers but it’s fairly straight forward on building).

I would say this isn’t really a Strapi thing, your frontend (nuxt/next) would be generating the SEO from content within Strapi

  • You can get a prototype up in running in minutes for the Strapi backend part, there won’t really be a net gain/loss with custom on the next/nuxt side as you are still speaking to a backend that you have to write logic for in the frontend.
  • Strapi can look a little complex, but I’m not sure exactly what you mean here. Simplicity in what context? Maintainability is also largely subjective.
  • I would say our focus on trying to be as low-code/no-code as possible would certain count as a gentle learning curve. If you are even remotely familiar with Koa.js (made by the same devs as Express) then it’s pretty easy to catch on.
  • We have tons of learning resources, and well you are here getting support :wink:

I won’t give my pro/con list as I feel this is certainly subjective to the use case, and well I’m bias considering I work for Strapi so I’ll let others answer in my place there :stuck_out_tongue:

Being a very novice developer coming from Rails, here’s a bit of my own experience. As usual, your mileage and context may vary.

Rails is much more opinionated and done-for-you, while there’s many different ways to solve a problem when using Node.js or Javascript. As a novice, I found Rails easier to troubleshoot since there’s tried and tested ways to do things in Rails. Javascript, less so. Picking up another backend language had been challenging/time-consuming, but worthwhile for learning/growth.

You don’t have to host your frontend and backend separately, and integrate them later. Simpler and less hassle if decoupling your backend from front isn’t what you need. I went with Strapi because I prefer working with a JAMstack approach, and have possibility of using the APIs outside of the main app.

The Rails gem library is awesome and extensive, but the npm library is even more extensive from what I read. Right now I don’t know how my app will turn out, so I’m betting on npm for adding future possible features.

Thanks, for the input,

I’m all in on Strapi for this one!

Just picked up Alex’s Udemy course, exactly the kind of “learn by doing” material I’ve been looking for.

The quality and the volume of tutorials were major deciding factors for me over something like Hasura.

Thanks Jason, its really helpful to hear first hand from someone in a similar position.

In the end I figured learning Ruby, and ROR would add too much to my learning curve without a really clear advantage . The project have in mind will have a decently interactive UI, so a FE framework is a given whether or not I go SPA or MPA, plus this way I can concentrate on improving my JS skills.

JAMstack looks very interesting the main project in the course I’m doing is a Strapi/Gatsby app; really looking forward to that one. What are you using for the FE of your app?

Best of luck with your project.

Yes, I’m quite inspired by the JAMstack approach too. That’s how it got me to Strapi. Am using Vue/Nuxt for my frontend… what are you using yourself?

I’m going with React/Next.js, mainly because the Strapi course teaches React. Looked at Gatsby but from my understanding an SSR Next app will be better for the type of app I have in mind; where the content will be updated very frequently.

1 Like

Just something to keep in mind (as it’s been a while since I’ve looked at Alex’s course) it’s quite good but some of the information may be out of date. I’m not sure if he is retroactively applying updates to the course. If you have any questions please do let us know and we can clarify any mixed information.

That being said, he course is really good and gives you a good look at Strapi, especially when it comes to customization. :+1:

1 Like