DEV Community

Aarush Bhat
Aarush Bhat

Posted on

MERN, MEAN OR FERN stack?

What is the best web development stack for which job? Is FERN stack taking over?

Discussion (9)

Collapse
rhymes profile image
rhymes

I had to search what "FERN" is so it might not be taking over just yet, not that me not knowing about it is any indication of its popularity or validity :-D

Jokes aside, I think it's hard to come up with a best for anything, let alone similar stacks like MERN/MEAN/FERN.

What is your opinion?

Leaving this for posterity:

MERN = MongoDB, Express, React, Node
MEAN = MongoDB, Express, Angular, Node
FERN = Google Firebase, Express, React, Node

Collapse
tycoon1 profile image
Mubashir Hasan

it's fauna db for f

Collapse
pclundaahl profile image
Patrick Charles-Lundaahl

Okay, so perhaps a bit of a rant answer, but:

I really hope firebase isn't taking over... Google owns enough of your things already. Regarding best or worst, I don't think there is a best here, at all.

First off, all of these are essentially the same: a NoSQL database, a node JS backend, and either Angular or React on the frontend. I think this misses out on a lot of other important aspects, such as:

  • Relational databases
  • Static site generators (whether it's Gatsby or something like Jekyll, that foregoes a JS framework)
  • Svelte, Vue, etc.
  • Not writing an SPA

Second, engineering is largely about making tradeoffs. Every element of your stack comes with pros and cons. Weighing those is part of being a responsible developer. Blindly picking one stack as best is doing a disservice to your customers.

For example, there's no need to force your users to download react and waste battery life to read a personal blog that's updated once or twice a week. However, if you're building a Kanban app, React or Angular are probably great choices, as maintaining an app that does that in vanilla JS is going to be expensive and error-prone. Likewise, mongo might be a stellar choice if you need really high throughput, but if you're writing an ecommerce engine, you probably want the ACID guarantees that come with a relational database.

I'd say keep your options open! Learn things outside the JavaScript bubble.

Collapse
jamesthomson profile image
James Thomson

This. There is no best stack, there is simply the stack that is best suitable for the product you are developing.

Collapse
sergix profile image
Peyton McGinnis

Firebase is becoming more popular with it's "kitchen sink" approach to backend, but MongoDB is still the best non-relational database in my opinion.

Also, it's surprising to me almost no one ever mentions Vue in the frontend of these. I guess I'll have to coin my own term.

From now on, MEVN will refer to "MongoDB, Express, Vue, Node". Although it doesn't quite roll off the tongue...

Collapse
abhikdasgupta profile image
abhikdasgupta

VENoM

Collapse
seanmclem profile image
Seanmclem • Edited

I've never heard of Fern before, but I personally don't like the limitations that I faced when using firestore instead of Mongo. If you already have node and express then why not Mongo? You can host a free instance of Mongo in the cloud using Mongo Atlas. Connecting to it in Node was relatively simple and types of queries that you can do are much more elaborate and advanced than firestore can do, or just as basic if that's all you need. That being said, I still use Firebase for hosting, users, sometimes file storage. Nothing wrong with it. Just fire store is kind of limited for me.

Really the stack that you use depends on your needs and skill sets. So whatever suits the situation best

Collapse
andilejaden profile image
Google Jr

I have never heard of the FERN stack, I just happened to think about it. I do a lot of work with Firebase, React and Nodejs, I have also worked with MongoDB. So from my experience I then started thinking if both MongoDB and Firebase are NoSQL databases, how come we don't have a FERN Stack since we already have a MERN stack?

I think I'm going to check it out one of these days...

Collapse
kayis profile image
K • Edited

I had the impression, after the LAMP stack the notion of specific "stacks" wasn't relevant anymore.