{"id":7663,"date":"2015-09-30T00:53:00","date_gmt":"2015-09-30T00:53:00","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2015\/09\/30\/balderdashy-sails\/"},"modified":"2015-09-30T00:53:00","modified_gmt":"2015-09-30T00:53:00","slug":"balderdashy-sails","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2015\/09\/30\/balderdashy-sails\/","title":{"rendered":"balderdashy\/sails"},"content":{"rendered":"<p>![Gitter](https:\/\/badges.gitter.im\/Join Chat.svg) <img decoding=\"async\" src=\"http:\/\/badge.fury.io\/js\/sails.svg\" \/><\/p>\n<p>Sails.js is a web framework that makes it easy to build custom, enterprise-grade Node.js apps. It is designed to resemble the MVC architecture from frameworks like Ruby on Rails, but with support for the more modern, data-oriented style of web app development. It\u2019s especially good for building realtime features like chat.<\/p>\n<h2>Installation \u00a0<\/h2>\n<p><strong>With node installed:<\/strong><\/p>\n<pre><code># Get the latest stable release of Sails\n$ sudo npm install sails -g\n<\/code><\/pre>\n<blockquote>\n<p>######New release available The v0.11 release of Sails (with support for Socket.io v1.0) is here! To read the v0.11 migration guide, click here.<\/p>\n<\/blockquote>\n<h2>Your First Sails Project<\/h2>\n<p><strong>Create a new app:<\/strong><\/p>\n<pre><code># Create the app\n$ sails new testProject\n<\/code><\/pre>\n<p><strong>Lift sails:<\/strong><\/p>\n<pre><code># cd into the new folder\n$ cd testProject\n\n# fire up the server\n$ sails lift\n<\/code><\/pre>\n<p><strong>Generate a REST API:<\/strong><\/p>\n<p><img decoding=\"async\" src=\"http:\/\/i.imgur.com\/Ii88jlhl.png\" \/><\/p>\n<h2>Compatibility<\/h2>\n<p>Sails is built on Node.js, Connect, Express, and Socket.io.<\/p>\n<p>Sails controllers are compatible with Connect middleware, so in most cases, you can paste code into Sails from an existing Express project and everything will work&#8211; plus you\u2019ll be able to use WebSockets to talk to your API, and vice versa.<\/p>\n<p>The ORM, Waterline, has a well-defined adapter system for supporting all kinds of datastores. Officially supported databases include MySQL, PostgreSQL, MongoDB, Redis, local disk, and local memory. Community adapters exist for CouchDB, neDB, TingoDB, SQLite, Oracle, MSSQL, DB2, ElasticSearch, Riak, neo4j, OrientDB, Amazon RDS, DynamoDB, Azure Tables, and RethinkDB; for various 3rd-party REST APIs like Quickbooks, Yelp, and Twitter, including a configurable generic REST API adapter; plus some eclectic projects.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.mysql.com\/common\/logos\/powered-by-mysql-125x64.png\" \/> \u00a0 \u00a0 \u00a0 \u00a0 <img decoding=\"async\" src=\"http:\/\/i.imgur.com\/OSlDDKv.png\" \/>\u00a0 \u00a0 \u00a0 \u00a0 <img decoding=\"async\" src=\"http:\/\/i.imgur.com\/bC2j13z.png\" \/>\u00a0 \u00a0 \u00a0 \u00a0 <img decoding=\"async\" src=\"http:\/\/i.imgur.com\/dozv0ub.jpg\" \/>\u00a0 \u00a0 \u00a0 \u00a0<\/p>\n<h2>Issue Submission<\/h2>\n<p>Make sure you\u2019ve read the issue submission guidelines before opening a new issue.<\/p>\n<p>Sails is composed of a number of different sub-projects, many of which have their own dedicated repository. If you suspect an issue in one of Sails sub-modules, you\u2019ll usually find its repo on the organization page. Click here to search\/post issues in this repository.<\/p>\n<h2>Feature Requests<\/h2>\n<p>See the Trello board to view\/discuss our roadmap and request features.<\/p>\n<h2>Contribute<\/h2>\n<p>See the contribution guide.<\/p>\n<h2>Support<\/h2>\n<p>Need help or have a question?<\/p>\n<p><em>Please don\u2019t use the issue tracker for support\/questions.<\/em><\/p>\n<h2>Links<\/h2>\n<h2>Team<\/h2>\n<p>Sails is actively built and maintained by Balderdash (@balderdashy), a realtime web &amp; mobile studio, with the help of these contributors:<\/p>\n<table>\n<tr>\n<th><img decoding=\"async\" src=\"http:\/\/gravatar.com\/avatar\/199046437b76e6ca73e00b4cc182a1c5?s=144\" \/><\/th>\n<th><img decoding=\"async\" src=\"http:\/\/1.gravatar.com\/avatar\/368567acca0c5dfb9a4ff512c5c0c3fa?s=144\" \/><\/th>\n<th><img decoding=\"async\" src=\"http:\/\/0.gravatar.com\/avatar\/b74e07aa543552709bf546ca279c9c67?s=144\" \/><\/th>\n<th><img decoding=\"async\" src=\"http:\/\/avatars0.githubusercontent.com\/u\/1598650?v=3&amp;s=144\" \/><\/th>\n<th><img decoding=\"async\" src=\"http:\/\/avatars0.githubusercontent.com\/u\/3065949?v=3&amp;s=144\" \/><\/th>\n<\/tr>\n<tr>\n<td>Mike McNeil<\/td>\n<td>Cody Stoltman<\/td>\n<td>Scott Gress<\/td>\n<td>Irl Nathan<\/td>\n<td>Rachael Shaw<\/td>\n<\/tr>\n<\/table>\n<p>Balderdash designs\/builds scalable Node.js apps for startups and enterprise customers. After building a few apps and taking them into production, we realized that the Node.js development landscape was very much still the Wild West. Over time, after trying lots of different methodologies, we decided to crystallize all of our best practices into this framework. I hope it saves you some time \ud83d\ude42<\/p>\n<h2>License<\/h2>\n<p>MIT License Copyright \u00a9 2012-2015 Mike McNeil<\/p>\n<blockquote>\n<p>Sails is built around so many great open-source technologies that it would never have crossed our minds to keep it proprietary. We owe huge gratitude and props to TJ Holowaychuk (@visionmedia) and Guillermo Rauch (@rauchg) for the work they did, as well as the stewards of all the other open-source modules we use. Sails could never have been developed without your tremendous contributions to the node community.<\/p>\n<\/blockquote>\n<p><img decoding=\"async\" src=\"http:\/\/sailsjs.org\/images\/bkgd_squiddy.png\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>![Gitter](https:\/\/badges.gitter.im\/Join Chat.svg) Sails.js is a web framework that makes it easy to build custom, enterprise-grade Node.js apps. It is designed to resemble the MVC architecture from frameworks like Ruby on Rails, but with support for the more modern, data-oriented style of web app development. It\u2019s especially good for building realtime features like chat. Installation \u00a0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-7663","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/7663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=7663"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/7663\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=7663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=7663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=7663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}