Last week, we announced our open source boilerplates and promised an introductory blog post for the node.js server boilerplate. So here we go. As mentioned previously, we were getting annoyed with repeated implementations of account management. Even if a lot of it is just adding the excellent passport library and a few configurations. But then there is setting up API routes, database settings, public and protected views. It made sense to have a clean, simple but also functional boilerplate for future products.
Implementing Our Own Boilerplate
Obviously, we were not the first with the need of a boilerplate. Just on github, there are dozens of similar boilerplates, but this was the rare case where we could not find a good fit for our needs. There were either too simple, or too complicated or didn't match our style of code organization.
Instead of forking one of these and making the required adjustments, we started clean with our own boilerplate, crafted for our needs.
Features
First and most importantly, we are trying to find the happy medium between adding too few and too many features. In our opinion, these are a must:
- Account Management (Signup, Login, including facebook login)
- Database Access & Session Management
- Internationalization for the necessary views
- Complete REST API
- Documentation (!)
- Tested thoroughly with Mocha
We also actively decided against some features:
- Implementing numerous external logins, which will barely used (github, twitter, google)
- Socket.io (while awesome, not necessary for every project and implementation is very dependent of use case)
- Support for databases besides MongoDB
We are still in the learning phase and not sure what and what not to include. These features will be adjusted with our growing experience. We also really appreciate your feedback! Just open an issue on github.
Current Status
We all love to work on our products and motivating ourselves to work on a boilerplate without a direct benefit as motivator is hard. The boilerplate is in an advanced stage and we already used it multiple times, but it still has a long way to go. The highest priority is the missing facebook login. We'll add that as soon as possible. Otherwise we are not aware of any significant bugs or problems.
We are constantly evaluating the implementation and trying to improve several aspects based on our experience with it. We will post a new blog post when there are significant changes or updates! Stay tuned.