A well documented set of tools for building node web applications.

Overview

Perk Framework

Perk is a well documented set of tools for building node web applications.

The goal of Perk is first and foremost to provide a well documented set of tools for building node web applications. Perk also aims to get you up and running quickly, while still providing you the flexibility to build production ready node apps. With these goals in mind, Perk is built on top of a series of robust, well supported libraries that have stood the test of time: Passport, Express, Redis, and Knex. These libraries are not hidden from view. You're 100% in control to swap one out here or there if you find a better tool for the job.

Getting started with Perk on OS X

Get started

Perk is glue that holds together a collection of powerful and full featured libraries that are written by some awesome developers. This guide will help you get started on OS X.

Have questions? Join our Slack team!

Fill out this form to get access to our slack team and we'll shoot you an invite ASAP.

API Documentation

Go to API Docs

Perk API documentation is designed to be a reference for you as you build your Perk app. API documentation provides structured information on the full set of features that Perk provides as well as resources on where to find more information, where applicable. If you're looking for more step-by-step guides pleas check out the Guides section of this website.

Guides

Go to Guides

Perk guides are designed to be step by step instructions for how to accomplish a specific task. They are good if you are doing something for the first time. If you're looking for quick reference material instead you might prefer the API Documentation

Quickly deploy to Heroku

Deploy to Heroku

Contributing to Perk

If you're interested in contributing to Perk we would love your help. You can read our contributors guide for tips on how to get started.

Comments
  • root-index-route breaks when switching to ejs templating engine

    root-index-route breaks when switching to ejs templating engine

    in routes/index.js res.render needs 2nd argument (object with title property)

    router.get('/', function(req, res, next) {
        res.render('index'  /*, { title: ... } */); 
    });
    
    bug 
    opened by tphdev 9
  • Add the ability for `npm run config` to load in previous configuration values living in the local.js file.

    Add the ability for `npm run config` to load in previous configuration values living in the local.js file.

    Right now it will simply override the old values but there is no way to edit. This may require updating / adding some functionality to https://github.com/alarner/config-template

    enhancement 
    opened by alarner 5
  • Generator for session secret

    Generator for session secret

    It would be super sweet to either have the session secret filled in by default with a random, secure value, or to have a CLI tool to generate one for me.

    enhancement 
    opened by beaulm 4
  • Error in guide page for 'Creating a dynamic view with ejs'

    Error in guide page for 'Creating a dynamic view with ejs'

    I apologize if this is the wrong place to bring this up, but I think there is a small error in the perk guide. The final example on the 'Creating a dynamic view with ejs' page, shows the escaped ejs tag where I think it should show the unescaped ejs tag: perk error

    opened by twgardner2 3
  • Duplicate Link under the 2nd video

    Duplicate Link under the 2nd video

    On the page for the second video, there are two links labeled

    Code (GitHub)

    The first link takes a user to the page here → http://perkframework.com/v1/api/views.html#changing-templating-engines

    The second link takes a user to the correct page with code from the current video.

    Might just need a text change there. 🌴

    opened by m2mathew 3
  • npm run dev should run with NODE_ENV=development

    npm run dev should run with NODE_ENV=development

    Right now when you run npm run dev it runs without any specified environment. Instead, the NODE_ENV environment variable should be set to 'development'.

    bug help wanted 
    opened by alarner 3
  • Adds docker configuration files to develop locally using containers.

    Adds docker configuration files to develop locally using containers.

    • Adds develop script to initiate containers and to easily pass knex and npm commands through to containers.
    • Includes Dockerfile to generate node image.
    • Includes docker-compose file to define containerized environment.
    opened by josecanhelp 2
  • Postgres command not working - it lives somewhere else on my computer

    Postgres command not working - it lives somewhere else on my computer

    As I followed along with the docs and the video #1, I was unable to use this command to start my postgres server.

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

    The solution so eloquently given to me by @alarner was to run brew info postgres. At the bottom of this info stream was the magical command ✨ to start up postgres on my machine. As this will likely help others, it might be wise to include this brew command for other Perk-ers to use. 😜

    brew services start postgresql (and also brew servcies start redis)

    opened by m2mathew 2
  • Add

    Add "Deploy to Heroku" button

    This adds the deploy to heroku button, as specified in #16. @alarner is there a specific demo app you would like deployed with it, or is this all that is required?

    opened by jaredtbates 2
  • When adding a new (not null) column to the users table, it breaks registration with no error

    When adding a new (not null) column to the users table, it breaks registration with no error

    The default registration page and post /auth/register route should return better errors, notifying the developer that a required field was not specified.

    For example, create a migration that adds a required (not null) username column to the users table. Run that migration and try to register. Registration fails with no error.

    What should happen:

    Registration should fail, but it should show a database error or text error giving the developer some information on why the error occurred.

    bug 
    opened by alarner 2
  • Create heroku buildpack for perk and gitignore minified files

    Create heroku buildpack for perk and gitignore minified files

    Right now we have to include bundle.min.js and main.scss.min.css in the repository because heroku will not let you build new files or write to the filesystem unless you have a custom buildpack. In order to streamline the deployment process and clean up git repos for perk apps we need to:

    1. create a custom buildpack
    2. add the min files (css and js) to the .gitignore
    3. update the perk docs accordingly
    enhancement 
    opened by alarner 2
  • Is perk still maintained?

    Is perk still maintained?

    When I first saw this, I get amazed by the idea and thought this what I needed. but then I saw that last commit is on October 2017, nearly a year.

    I would like to know the state of perk development.

    Thank you

    opened by mmayla 0
  • Perk CSS not updating properly

    Perk CSS not updating properly

    Steps to reproduce:

    1. Add a new sass include file
    2. Import that include file into main.scss
    3. Change the include file - notice that the css doesn't update

    Problem: Dependency graph not updating when import is included in main.scss because it only updates when a new file is added, not when a file is changed.

    Fix: Cause the dependency graph to be rebuilt when a file is changed as well.

    opened by alarner 0
  • Easier deployments to AWS and/or Digital Ocean

    Easier deployments to AWS and/or Digital Ocean

    It would be great if you could enter in API keys for your VPS provider of choice and be able to type npm run deploy AWS or something similar to easily deploy your Perk app.

    enhancement help wanted 
    opened by alarner 0
  • Add unit tests for files missing tests

    Add unit tests for files missing tests

    • [ ] config/browserify.js
    • [ ] config/config.js
    • [ ] config/server.js
    • [ ] config/test.js
    • [ ] config/utils.js
    • [ ] config/webpack.js
    • [ ] lib/config.js
    • [ ] lib/logger.js
    • [ ] lib/middleware/flash-messages.js
    • [ ] lib/middleware/local-user.js
    • [ ] lib/middleware/logged-in.js
    • [ ] lib/middleware/response-format.js
    • [ ] lib/middleware/validate-auth-profile.js
    • [ ] lib/middleware/validate-auth-type.js
    • [ ] lib/middleware/validate-local-credentials.js
    • [ ] lib/middleware/versions.js
    • [ ] lib/auth/authenticator.js
    • [ ] lib/auth/create-auth.js
    • [ ] lib/auth/create-user.js
    • [ ] lib/auth/login.js
    • [ ] lib/auth/no-dupe.js
    • [ ] lib/auth/passport-setup.js
    enhancement beginner friendly 
    opened by alarner 4
Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.

Functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS. Ecosystem Name Description @marblejs/core F

Marble.js 2.1k Dec 16, 2022
Use full ES2015+ features to develop Node.js applications, Support TypeScript.

ThinkJS Use full ES2015+ features to develop Node.js applications, Support TypeScript. įŽ€äŊ“中文文æĄŖ Installation npm install -g think-cli Create Application

ThinkJS 5.3k Dec 30, 2022
MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers

Derby The Derby MVC framework makes it easy to write realtime, collaborative applications that run in both Node.js and browsers. Derby includes a powe

DerbyJS 4.7k Dec 23, 2022
Catberry is an isomorphic framework for building universal front-end apps using components, Flux architecture and progressive rendering.

Catberry What the cat is that? Catberry was developed to help create "isomorphic/Universal" Web applications. Long story short, isomorphic/universal a

Catberry.js 801 Dec 20, 2022
Zeronode - minimal building block for NodeJS microservices

Zeronode - minimal building block for NodeJS microservices Why Zeronode? Installation Basics Benchmark API Examples Basic Examples Basic Examples [Adv

Steadfast 120 Oct 21, 2022
A template project for building high-performance, portable, and safe serverless functions in Vercel.

Tutorial | Demo for image processing | Demo for tensorflow This is a Next.js project bootstrapped with create-next-app. This project is aimed to demon

Second State 63 Dec 8, 2022
A framework for real-time applications and REST APIs with JavaScript and TypeScript

A framework for real-time applications and REST APIs with JavaScript and TypeScript Feathers is a lightweight web-framework for creating real-time app

Feathers 14.3k Jan 1, 2023
LoopBack makes it easy to build modern API applications that require complex integrations.

LoopBack makes it easy to build modern applications that require complex integrations. Fast, small, powerful, extensible core Generate real APIs with

StrongLoop and IBM API Connect 4.4k Jan 4, 2023
Build Amazon Simple Queue Service (SQS) based applications without the boilerplate

sqs-consumer Build SQS-based applications without the boilerplate. Just define an async function that handles the SQS message processing. Installation

BBC 1.4k Dec 26, 2022
Simple scaffolding for applications that produce SQS messages

sqs-producer Enqueues messages onto a given SQS queue Installation npm install sqs-producer Usage const { Producer } = require('sqs-producer'); // c

BBC 160 Dec 23, 2022
Fast, unopinionated, minimalist web framework for node.

Fast, unopinionated, minimalist web framework for node. const express = require('express') const app = express() app.get('/', function (req, res) {

null 59.5k Jan 5, 2023
Fast and low overhead web framework, for Node.js

An efficient server implies a lower cost of the infrastructure, a better responsiveness under load and happy users. How can you efficiently handle the

Fastify 26k Jan 2, 2023
:evergreen_tree: Modern Web Application Framework for Node.js.

Trails is a modern, community-driven web application framework for Node.js. It builds on the pedigree of Rails and Grails to accelerate development by

Trails 1.7k Dec 19, 2022
A serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gateway, Lambda)

---- Sorry, this project is not maintained anymore. ---- dawson is a serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gate

dawson 717 Dec 30, 2022
Expressive middleware for node.js using ES2017 async functions

Expressive HTTP middleware framework for node.js to make web applications and APIs more enjoyable to write. Koa's middleware stack flows in a stack-li

Koa.js 33.5k Jan 4, 2023
Realtime MVC Framework for Node.js

Website Get Started Docs News Submit Issue Sails.js is a web framework that makes it easy to build custom, enterprise-grade Node.js apps. It is design

Balderdash 22.4k Dec 31, 2022
đŸĨš Born to build better enterprise frameworks and apps with Node.js & Koa

Features Built-in Process Management Plugin System Framework Customization Lots of plugins Quickstart Follow the commands listed below. $ mkdir showca

egg 18.3k Dec 29, 2022
đŸ“Ļ🔐A lightweight private proxy registry build in Node.js

Version 6 (Development branch) Looking for Verdaccio 5? Check branch 5.x. Verdaccio is a simple, zero-config-required local private npm registry. No n

Verdaccio 14.3k Dec 31, 2022
The future of Node.js REST development

restify is a framework, utilizing connect style middleware for building REST APIs. For full details, see http://restify.com Follow restify on Usage Se

restify 10.6k Jan 2, 2023