Here’s the Deal
Slant is powered by a community that helps you make informed decisions. Tell us what you’re passionate about to get your personalized feed and help others.
While having a lot of features out of the box is great for a small proof of concept, it becomes hugely detrimental in any long-term, production-grade project. One of the major strengths of the Node ecosystem is the ability to pick and choose the tools you need, and Sails forces a ridiculous amount of cruft on developers. The many features the rely on convention also mean a steep learning curve and surprising behaviours that can be difficult to track down. See More
After 6 years of Node development using primarily Express, switching to Sails was an awful experience. Perhaps the biggest issue is that Waterline can't really be called an ORM, as it limits itself to ODM capabilities, without any real relation support. This means having to choose between constant reliance on raw queries or making countless queries and processing in JS, which leads to either awful performance or truly hard-to-maintain code Further, the "convention over configuration" approach expresses itself as a ton of voodoo and unexpected behaviours, documentation isn't great, performance is overall poor, it's extremely heavyweight, and just feels like a constant struggle with a poor, outdated framework that no-one should be using in 2020. See More
Sails.js uses Waterline ORM at its backend which means you can store your data in any datastore that you like; all you have to do is make a change to the Waterline adapter, this will allow you to store your data in MySQL/Redis or any other kind of database. See More
The built-in Waterline is not well designed and is not suitable for production environments. Populating more than 1 level deep is a nightmare, there is no transaction support, new features/bug fixes are not implemented anywhere near a timely manner (the most requested feature 'deep populate' has been lingering in their github issues list for over a year and a half now). See More
This could be a huge plus, if you prefer to build your apps using the Model View Controller architecture. Using Sails.js you'll find the task of separating the business logic from the user interface and keeping the interactions between them in a separate layer, extremely easy. See More