Introducing a new series of tutorials and open-source project – “How to SANE”

Sane stack logo

Staying current is nearly an impossible job in today’s dazzling world of Open Source Software (OSS). After retraining myself to be a full stack javascript developer, I picked Ember.js as a client app framework. Upon becoming comfortable with it, I integrated it into the MEAN stack instead of Angular, thus creating a full stack boilerplate called Nodember which saw a good amount of interest – 300+ stars and 50+ forks on Github. By the time I finished writing that, it was naturally outdated. The main problems with Nodember were that it didn’t use EmberCLI which didn’t exist when I had started, it had no high-level server framework with neat conventions like Ember has on the front,  and it didn’t factor in well building and deploying the project.

For the last several months I’ve been doing a lot of learning and updating my skills. To be on par with the very latest developments in the Javascript eco-system and now I am starting a new tutorial project called “How to SANE” which will rebuild Nodember using the SANE stack by Markus Padourek.

Why SANE? After becoming disillusioned with only having Express and Mongoose on the back, I wanted more structure and convention. I looked around and quickly realized that Sails.js, being based on Rails, is also a convention-over-configuration Javascript framework, just like Ember, it has seen a lot of development by very smart people, it has nice docs and a great community. It is the most natural choice to pair with Ember in a full Javascript stack. Immediately I thought “Awesome, I’m going to switch my boiler to Sails and create a stack” Good thing that before I did that, I ran a Google search for “ember and sails” and realized that it had already been done. Markus Padourek had created a fresh, only few weeks old,  stack using exactly the pieces I had scoped  – EmberCLI for building the client, and Sails.js for a server. He had even gone beyond and built in Docker and PM2 to solve the deployment concerns.

I’m a firm believer in not reinventing the wheel and instead adding onto each other’s efforts. This really is the history of how  human civilization advances. I started watching the SANE project and prototyping with it. It now has a CLI of its own, supports multiple databases, makes docker optional with a flag and has an active chat room on Gitter. Instead of re-solving the same problems which Markus is already solving, I’ve decided to start a project which teaches how to use his stack.

The new project ‘How to SANE’ will consist of a series of tutorials and a Github repo. I will retrace the steps of Nodember and provide solutions to common web development needs using the SANE stack. For a start I will progressively demonstrate the following:

  • CRUD
  • User authentication
  • Data relationships
  • Embedded records
  • File uploads
  • Drag and Drop
  • Photo gallery and viewer
  • App level flash messaging
  • Data bound modals
  • Basic CMS functionality

As each feature is built and added to the project, I will release a tutorial on this blog about how I did it. Afterward I will continue adding generic, business logic-free features which other developers can use.

This time around the project on Github will stay current and be usable in production. It is future-facing and already has Ember 1.10, HtmlBars, Ember Data 1.0.0-beta.12, Ecmascript 6 & 7 features on both client and server through ESNext and Traceur. It is being built with Ember 2.0 in mind and does not use Controllers and Views.

You can find it, watch it and star it here:

https://github.com/mgenev/how-to-sane

As you see new features added, check back at this blog for tutorials.

 

2 thoughts on “Introducing a new series of tutorials and open-source project – “How to SANE”

  1. Norman

    March 3, 2015 at 6:55pm

    Excellent! I also came to the Ember/Sails conclusion. Going to check out this Sane stack.

  2. Serguei Ignatov

    April 29, 2015 at 4:50am

    Thank you very much for your efforts! I was studying many web frameworks and have found that Ember/Sails is one of the best choice. I’m very novice in web industry and I hope that your tutorial will be very helpful for me/

Comments are closed.