The idea of a common language across the full stack of a web application is quite compelling for me. Also with NoSQL databases, now the data-interchange format JSON, can be consistent from the persistence layer to the user interface. This provides a very efficient and streamlined process for retrieving stored data and displaying it on the user interface resulting in fewer layers, no ORM, and less complexity.
Over the years that I have been developing software I’ve heard the promise of new languages or frameworks that will improve developer productivity. So far in my experience while working with the MEAN Stack, I’d say this is one of the few technologies that actually delivers on that promise. The only change I’d personally make to the MEAN Stack would be to replace MongoDB with Couchbase, but that’s just a personal preference.
Yeoman allows you to get started developing with the MEAN Stack as quickly as possible and with common best practices and development tools. Yeoman uses generators to build all the scaffolding needed for a new project. One of the more popular generators for the MEAN Stack is the AngularJS Full-Stack generator. With Yeoman and the generator installed, getting a scaffolding MEAN Stack application started is as simple as typing,
yo angular-fullstack [app-name]. This will provide you with a working, minimal application with unit testing frameworks (Mocha – server side and Karma – client side), Grunt for build tasks, and Bower for dependency management.
Heroku is a cloud application platform for deploying web applications. Heroku allows you to deploy web application for free and as your resource needs increase, the pricing plan scales with your application needs. Heroku makes deploying a MEAN Stack application as painless and easy as possible. The AngularJS Full Stack generator for Yeoman also has automated tasks for building and deploying your application to Heroku which is very nice.
The demo application can be seen in the link below. (please excuse the “waether” misspelling in the URI, oops)
The source code for the application is available on my GitHub account in the link below.
Well, I hope that sharing this information will be helpful for someone who hasn’t taken the dive into the MEAN Stack yet.