We believe that developer tools are only as good as their worst piece of documentation. Perk aims to always have complete, up to date and friendly documentation, so you're never stuck up the creek without a paddle.
Lots of dev tools claim to make your life easier. The Perk rule of thumb is that it should never be harder to do something using Perk than to roll it on your own. Perk strikes a balance between providing a handful of useful pre-built features out of the box, but not forcing them down your throat.
Perk is built on stable, tried and true libraries including Passport, Express, Redis and Knex. It may never have the flavor of the month JavaScript features, but we promise that you won't have to re-learn it every 30 days either.
We believe that programming should be fun, relaxing and exciting, not stressful or tedious. Perks goal is to help you get past the tedious stuff, so that you can spend more time on the unique and interesting challenges of your specific project.
Pre-built and customizeable login & registration pages that support email / password authentication as well as common OAuth providers like Google, Twitter, Facebook, GitHub, etc.
Using Knex and Bookshelf, Perk supports a variety of relational databases including MySQL, PostgreSQL, MSSQL, SQLite, etc. You also get well built ORM, query builder migrations and transaction support.
The configuration system allows you to add new configuration options as well as override default values locally or based on environment.
Errors within Perk are all specified within a JSON configuration file, making it easy to change them on either the front-end or backend.
Perks built-in lightweight toolchain allows ES6 to ES5 transpilation using Babel. It also supports JSX, Sass and front-end modules using either CommonJS or ES6 style imports / exports.
Get your app up and running quickly by following a few steps to deploy to Heroku. Perk uses a standardized node set-up so no special customization is necessary to depoy with Heroku.
The perk flash message library provides a nice and easy way to pass data between pages. It's especially useful for handling errors.