An application I'm building to learn sails.js
Switch branches/tags
Nothing to show
Pull request Compare This branch is 2 commits behind irlnathan:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


a Sails application

This is a part of a series of screencasts which build a sails application from scratch. You can follow the progress over at my github sailscasts page.

A live version of the project is available at: (

  • Episode 1: goes over installing sails and creating the initial sails project.

  • Episode 2: Creating a Sign-up Page, ‘First-look’ at Routes, and Adding Twitter Bootstrap

  • Episode 2a: Added jquery, showed ya how to load jquery.js before bootstrap.js by changing Gruntfile.js, minor changes to layout.ejs and added a custom.less file to styles.

  • Episode 3[Updated]: Creating a user model and controller, creating a sign-up page, 'first-look' at sails blueprints.

  • Episode 4: Creating a user account and enabling csrf protection.

  • Episode 5: Handling validation errors, creating a flash message and injecting it into the sign-up page.

  • Episode 6: Creating a policy and adding client-side validation to the sign-up page.

  • Episode 7: Create a show action which will be our very humble profile page.

  • Episode 8: You'll prevent html from being run on user generated content, create a user administrative page as well as flesh out the index, edit, and update action.

  • Episode 9: In episode 9 you'll create a delete action and implement a best practices methodolgy using a form with a hidden input field for deleting a user account.

  • Episode 10: In episode 10 you'll quickly switch out the application's underlying database to mongoDB with a few changes to the adapter configuration files.

Special Note: I moved the adapter configuration to local.js which is ignored by .gitignore, therefore, you'll have to make the changes specified on the video on your own.

  • Episode 11: In episode 11 you start encrypting passwords with bcrypt.

  • Episode 12: In episode 12 learn how to clone the activityOverlord project, install the necessary dependencies as well as tasks to get the application up and running from the github repository.

  • Episode 13: In episode 13 learn how to create a sign-in page, create a session controller with a new action and take a relatively deep dive into understanding sessions.

  • Episode 14: In episode 14 learn more about user authentication, creating the create and destroy actions of the session controller as well as restricting access to the application through the use of policies.

Special Note: There's an issue in this episode that requires one to be authenticated to create an account...oops. This issue was described in episode 16 and fixed in the Episode 16-17 commit.

  • Episode 15: In episode 15 you’ll change the layout page to greatly improve post authentication navigation.

  • Episode 16: In episode 16 you'll make a change to the policies and sign a user in when an account is created. This will fix some stuff I forgot to do back in episode 14.

  • Episode 17: In episode 17 you'll add a distinction between a regular user and an admin user through the use of additional policies.

  • Episode 17a: In episode 17a you'll fix an issue by marshalling request parameters, that allowed a user to inject html to create an admin user.

  • Episode 18: In episode 18 you'll get a better understanding of how web sockets and works using a chat example incorporating the concept of rooms.

Special Note: The repository for files used in this episode can be found at: (

  • Episode 19: In episode 19 you'll create the necessary ui and mechanics for sign-in and sign-out in preparation for using web sockets.

  • Episode 20: In episode 20 you'll use an app to explore and understand how works within sails using a client side app that renders the majority of its views via ajax. With four lines of code, the app monitors the user model and alerts any subscribing sockets with changes to the model.

  • Episode 21: In episode 21 you'll learn how to integrate and sails with custom controller actions using Real Time Model Events.

Special Note: Starting with Episode 21, you should be on sails v.0.9.7 are greater.

  • Episode 22: In episode 22 you'll learn how to manipulate the DOM within server rendered views based upon Real Time Model Events.

  • Episode 23: In episode 23 you'll learn how to create real-time flash messages based upon real-time model events.

  • Episode 24: In episode 24 you'll correct and issue with passing to the publishUpdate method and add a policy to subscribe action of user controller.

  • Episode 25: In episode 25 you'll learn what CommonJS is, what it does, and how to use it.

  • Episode 26: In episode 25 you'll learn how to deploy a sails app to heroku.

Special Note: A live version of the site is available at (