• Stars
    star
    22,777
  • Rank 964 (Top 0.02 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 12 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Realtime MVC Framework for Node.js

Sails.js

Website   Get Started   Docs   News   Submit Issue

NPM version   Gitter   Twitter Follow

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 & API development. It's especially good for building realtime features like chat.

Since version 1.0, Sails supports await out of the box. This replaces nested callbacks (and the commensurate error handling) with simple, familiar usage:

var orgs = await Organization.find();

Installation  

With node installed:

# Get the latest stable release of Sails
$ npm install sails -g
Upgrading from an earlier version of Sails?

Upgrade guides for all major releases since 2013 are available on the Sails website under Upgrading.

Your First Sails Project

Create a new app:

# Create the app
sails new my-app

Lift sails:

# cd into the new folder
cd my-app

# fire up the server
sails lift

Screenshot from the original Sails video

For the most up-to-date introduction to Sails, get started here.

Compatibility

Sails is built on Node.js, Express, and Socket.io.

Sails actions are compatible with Connect middleware, so in most cases, you can paste code into Sails from an existing Express project and everything will work-- plus you'll be able to use WebSockets to talk to your API, and vice versa.

The ORM, Waterline, has a well-defined adapter system for supporting all kinds of datastores. Officially supported databases include MySQL, PostgreSQL, MongoDB, Redis, and local disk / memory. Community adapters exist for CouchDB, neDB, SQLite, Oracle, MSSQL, DB2, ElasticSearch, Riak, neo4j, OrientDB, Amazon RDS, DynamoDB, Azure Tables, RethinkDB and Solr; for various 3rd-party REST APIs like Quickbooks, Yelp, and Twitter, including a configurable generic REST API adapter; plus some eclectic projects.

Powered by MySQL                                

For the latest core adapters and notable community adapters, see Available Adapters.

Tutorial Course

Books

Support

Need help or have a question?

Issue submission

Please read the submission guidelines and code of conduct before opening a new issue. Click here to search/post issues in this repository.

Contribute

There are many different ways you can contribute to Sails:

Please carefully read our contribution guide and check the build status for the relevant branch before submitting a pull request with code changes.

Links

Team

Sails is actively maintained with the help of many amazing contributors. Our core team consists of:

Mike McNeil Kelvin Omereshone Eric Shaw
Mike McNeil Kelvin Omereshone Eric Shaw

Our company designs/builds Node.js websites and apps for startups and enterprise customers. After building a few applications 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. Six years later, Sails is now one of the most widely-used web application frameworks in the world. I hope it saves you some time! :)

License

MIT License Copyright © 2012-present, Mike McNeil

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 Ryan Dahl (@ry), TJ Holowaychuk (@tj), Doug Wilson (@dougwilson) and Guillermo Rauch (@rauchg) for the work they've done, 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 JavaScript community.

A squid peering inside a book, halation and cosmic Sails.js knowledge emanating from the pages of the substantial tome

More Repositories

1

waterline

An adapter-based ORM for Node.js with support for mysql, mongo, postgres, mssql (SQL Server), and more
JavaScript
5,416
star
2

sails-docs

**Latest docs now live in the Sails core repo!** The source markdown files for the official Sails.js documentation, which gets compiled, squeezed, and stretched into HTML when we deploy the Sails website.
781
star
3

waterline-docs

WARNING: The content in this repo is out of date! See https://github.com/balderdashy/sails-docs for the most up-to-date documentation
452
star
4

sails-mongo

MongoDB adapter for Sails.js / Waterline ORM.
JavaScript
412
star
5

sails-mysql

MySQL adapter for Sails.js/Waterline
JavaScript
193
star
6

angularSails

AngularJS bindings for Sails. http://angularjs.org
JavaScript
184
star
7

sails.io.js

Browser SDK for communicating w/ Sails via sockets
JavaScript
182
star
8

sails-postgresql

PostgreSQL adapter for Sails.js
JavaScript
167
star
9

sails-redis

Lightweight Redis adapter for Node.js/Sails apps, focused on providing easy direct access to the configured, connected, ready-to-use Redis client instance. (Useful for caching.)
JavaScript
129
star
10

seed

A sample application generated by Sails.
JavaScript
90
star
11

mast

UI conventions built on top of Backbone.JS
JavaScript
81
star
12

sails-hook-email

Sails email hook
JavaScript
67
star
13

backbone-to-sails

Backbone SDK for communicating with Sails.js over Socket.io
JavaScript
64
star
14

skipper-s3

Streaming file uploads to S3
JavaScript
62
star
15

include-all

An easy way to include all files within a directory. Note: This is a fork of felixge's require-all which allows for optional includes.
JavaScript
56
star
16

sails-adapter-boilerplate

Example of a custom adapter (i.e. ORM plugin) for Waterline / Sails.js
JavaScript
45
star
17

sails-disk

Development-only persistent adapter for Sails.js / Waterline
JavaScript
44
star
18

captains-log

Lightweight logger with a simple pass-through configuration for use with fancier logging libraries. Used by the Sails framework. Optional support for colorized output, custom prefixes, and log levels (using npm's logging conventions.)
JavaScript
43
star
19

waterline-schema

This is the core schema builder used in the Waterline ORM.
JavaScript
33
star
20

activity-overlord-2-preview

A preview of Irl Nathan's Activity Overlord 2.0 (complete tutorial of Sails w/ Angular 1)
JavaScript
31
star
21

sails-generate

Master of ceremonies for generators in the Sails CLI
JavaScript
28
star
22

sails-generate-frontend

Generate the frontend part of a new Sails app.
JavaScript
27
star
23

sails-memory

In-memory, non-persistent adapter for Sails.js / Waterline
JavaScript
24
star
24

sails-hook-sockets

Implements socket.io support in Sails.
JavaScript
23
star
25

sails-hook-dev

A Sails hook that provides diagnostic / debugging information and levers during development.
JavaScript
22
star
26

sails-angular-seed

Boilerplate AngularJS app with Sails
JavaScript
21
star
27

enpeem

Lightweight wrapper for accessing npm programmatically (alternative to adding `npm` as a dependency)
JavaScript
19
star
28

sails-hook-orm

Implements support for Waterline ORM in Sails.
JavaScript
18
star
29

sails-hook-subapps

Sails hook for including child Sails apps into a parent app
JavaScript
18
star
30

sails-generate-generator

Generate a custom generator for Sails.js
JavaScript
18
star
31

merge-defaults

A recursive version of `_.defaults`.
JavaScript
16
star
32

waterline-adapter-tests

API integration tests for Waterline adapters
JavaScript
16
star
33

waterline-sequel

A SQL generator for use in Waterline Adapters
JavaScript
16
star
34

skipper-disk

Streaming file uploads to a server's local filesystem
JavaScript
14
star
35

sails-twitter

Twitter adapter for Sails.js
JavaScript
14
star
36

waterline-criteria

Utility library for use in Sails adapters where you need to filter a list of output using a criteria object
JavaScript
13
star
37

sails-generate-views-jade

Generate default views for a Sails app using Jade templates
HTML
11
star
38

billable

Tracks billable hours.
JavaScript
10
star
39

sails-generate-adapter

Generate a waterline/sails.js adapter.
JavaScript
10
star
40

fixture-stdout

A test fixture to intercept writes to stdout.
9
star
41

sails-generate-backend

Generate the backend part of a new Sails app.
JavaScript
9
star
42

sails-generate-new

Generate a new Sails app.
JavaScript
8
star
43

sails-riak

Riak adapter for Sails.js
CoffeeScript
7
star
44

machinepack-youtube

Communicate with the Youtube API to get video views, etc.
JavaScript
6
star
45

deretina

For supporting retina displays on the web: downsizes @2x images in the current directory
JavaScript
6
star
46

example-sails-proj-with-angular

JavaScript
6
star
47

sails-irc

IRC adapter for Sails.js
JavaScript
6
star
48

sails-generate-model

Generate a model in a Sails app.
JavaScript
5
star
49

sails-build-dictionary

DEPRECATED in Sails v1.0 (instead, just use [email protected] directly)
JavaScript
5
star
50

machinepack-slack

Use the Slack API from Node.js.
JavaScript
5
star
51

sails-generate-api

API generator for Sails
JavaScript
4
star
52

alcohol

Makes your dates prettier
4
star
53

booty

CoffeeScript
4
star
54

sails-util

Shared utilities between sails, waterline, etc.
JavaScript
4
star
55

sails-dirty

Sails.js adapter for @felixge's node-dirty
JavaScript
3
star
56

htassets

A mobile-compatible makeover for the default apache directory listing
JavaScript
3
star
57

sails-elastic-search

Elastic Search Adapter for Sails JS
3
star
58

Mobile-HTML-5-Video-Example

Cross-platform mobile video player using HTML 5
3
star
59

express-with-shared-mongo-session-example

An example of using a shared session in Express with MongoDB as the storage container
JavaScript
2
star
60

dev-workshop-conf

JavaScript
2
star
61

sails-generate-views

Generate default views for a Sails app
HTML
2
star
62

UserSwarm

JavaScript
2
star
63

sails-generate-controller

Generate a new controller file in an existing Sails app.
JavaScript
2
star
64

sails-generate-sails.io.js

Generate a sails.io.js browser SDK file at ./assets/js/dependencies/sails.io.js.
JavaScript
2
star
65

skipper-adapter-tests

Generic acceptance tests for Skipper adapters
JavaScript
1
star
66

Naked

Chrome extension that opens links with stylesheets disabled for privacy.
1
star
67

waterline-cursor

Association/subquery helper
JavaScript
1
star
68

sails-generate-gruntfile

Generate gruntfile for a sails app.
JavaScript
1
star
69

stubble

A trimmed-down mustache.js for jQuery
JavaScript
1
star
70

sails-generate-hook

Generate a custom hook for Sails.js.
JavaScript
1
star
71

waterline-blob

Factory which generates waterline adapter definitions from blob definitions (eventually merge into waterline core)
JavaScript
1
star
72

blueprint-api-example

An example of a Sails app using a blueprint API for use in "Run in Postman" buttons on the Sails website.
JavaScript
1
star
73

sails-stringfile

translated/localized stringfiles containing messages from Sails core and dependencies
JavaScript
1
star