10 Node Frameworks to use in 2019 (spoiler: Meteor is there)

Its nice to see that there are sites that DO understand the value of good platforms and frameworks :slight_smile:

14 Likes

Nice one. Meteor is really good thing to use.

1 Like

Nice one. It was an article such as this one that made us pick Meteor as far back as 2013. Although I use Express for small projects, typically services to communicate with our main platform, I would not even consider something other than Meteor for a larger application.

It’s crazy how many people focus on shiny tools as opposed to focusing on creating shiny products. Meteor does all the ugly stuff, freeing us to actually build a business. I can hardly think of a similar other mana from the Open Source sky (I know, it’s never mana, but someone else’s sweat and money). Rails maybe, but still not the same - can’t do apps like Meteor does.

13 Likes

@illustreets i fully agree. I have some issues woth how MDG handles stuff, but my latest project is again in Meteor and I keep getting reactions on just how fast I manage to build it and that is thanks to Meteor!

7 Likes

Thanks to @cloudspider for providing this link!

One of the mentioned frameworks is DerbyJS (https://derbyjs.com), which uses ShareDB to synchronize between client and server. I’m using the predecessor ShareJS as Meteor package (mizzao:sharejs) in one of my applications to support concurrent editing of the same document.

Therefore, I’ve done a quick look at the documentation, and it reminds me of the time, when I started using Meteor a few years ago, with a Handlebars/Blaze-like syntax for the templates, pub/sub patterns, reactivity out of the box.

Additionally, it offers one feature, that I currently miss in the Meteor world: It offers off-line support with synchronization after going back online.

Eventually, I’ll take a deeper look at it. I’m quite sure, that it contains some interesting aspects, which could help improving the data synchronization layer of Meteor.

BTW: It offers Redis support out of the box.

4 Likes

Yup, this is a big deal.

@qnipp we decided to implent OT using Meteor directly. We used diffjs (with changes) to identify changes to the html and send OT commands via a diffs collection to alter the doc. Careful use of versions and version dates and we’re done.

We know we can do a bit better but it words great. Just an FYI instead of using ShareDB with an extra socket connection etc.

@ramez Thanks for providing an alternative solution. Do you mean https://github.com/kpdecker/jsdiff?

The predecessor of ShareDB is ShareJS (used in mizzao:sharejs) https://github.com/josephg/ShareJS

Opening up a second socket connection is no solution at all, but it would be a possibility to integrate a second protocol in the existing connection. :wink:

What I like about ShareDB is, that it seems to work not only for text, but for whole objects. And in collaborative environments you might also change the same object by two users at the same time. I haven’t found a universal solution, which is already integrated with Meteor.

Yes, we used that jsdiff as our foundation for diff-ing. It can be heavy computationally, but at some point we will implement a smarter system (only diff the area that changed since you know where the user is typing). The diffing object contains an index to the current location in text, we can use that. You will have to do some work to expand out html tags etc.

If you are interested in pursuing this direction, I can share our upgraded diff library which includes HTML diff-ing. But know that you will have to do a lot of heavy-lifting manually: you have to pub a diff collection, apply the diffs locally yourself, distinguish your diffs from others’ diffs, handle delayed diffs and versions etc.