Notes about full stack Javascript software development

Menu

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

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.

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

Norman

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/