Giter Club home page Giter Club logo

serverless-boilerplate's Introduction

Serverless Boilerplate

The easiest serverless boilerplate to get started with

Motivation

Serverless is awesome : no more server to setup, ultra scalable and very cheap. But I found not very easy to find the perfect setup to get started with. Using serverless brings a lot of not well documented pitfalls that drain a considerable amount of time and energy. I made this boilerplate after gathering the solutions to all of these.

The goal is to keep these pitfalls out of the way.

Installation

# If you don't already have the serverless cli installed, do that
npm i -g serverless

# If it's the first time you use aws, you need to configure credentials
# https://github.com/serverless/serverless/blob/master/docs/providers/aws/guide/credentials.md

# Use the serverless cli to install this repo
serverless install --url https://github.com/harijoe/serverless-boilerplate --name <your-service-name>

# cd into project and set it up
cd <your-service-name>

# Install dependencies
npm i

# Install dynamoDB libs
sls dynamodb install

How to use it ?

First, change service name in serverless.yml !

To start offline development:

npm start

To deploy:

sls deploy -s <specify-a-stage>

Current available environments are staging and production but you can configure any environment you like in env.yml

What's included ?

  • Environments
  • Webpack
  • Offline
  • DynamoDB
  • Middlewares
  • Prettier
  • Module by absolute path resolution

Environments

Environments and environment variables can be configured in env.yml. dev is the one used by default. You can deploy to staging or production by using sls deploy -s prod. A different dynamoDB instance for each environment will be created.

Prettier

Best code formatting tool. It will be automatically run on each commit.

Tweak .prettierrc to match your own flavor.

Webpack

serverless-webpack allows the use of babel plugins to enable modern javascript features. You should not modify its configuration.

Tweak .babelrc to add plugins you want to use.

Offline

serverless-offline is configured to enable offline development, use it with npm run start

DynamoDB

Support for DynamoDB both locally and in the cloud. It's a quite easy to use nosql database

Middlewares

Handly is included. It's a handy wrapper for serverless handlers applying very useful middlewares.

License

Serverless Boilerplate is MIT licensed.

serverless-boilerplate's People

Contributors

harijoe avatar

Watchers

Spencer Tom Tafadzwa Chirume avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.