
JAWS: The Server-less Framework V1 (BETA)
=================================
[](https://gitter.im/jaws-stack/JAWS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
Check us out at
. Our presentation is ["DVO209 - JAWS: The Monstrously Scalable Serverless Framework – AWS Lambda, Amazon API Gateway, and More!"](https://www.portal.reinvent.awsevents.com/connect/sessionDetail.ww?SESSION_ID=5494)
**Status 9/18**: The **JAWS V1 RC1** in now available. Significant re-write. Few of the many new features: deploy lambdas via CloudFormation. [AWSM: Amazon Web Services Modules](https://github.com/awsm-org/awsm). Much improved multi-region support. Totally re-done `env` command.
**[Don't forget to join the JAWS Email List for updates!](http://eepurl.com/bvz5Nj)**
## Goals:
- **No Servers:** The JAWS back-end is comprised entirely of AWS Lambda Functions. You can develop/update/configure each separately without affecting any other part of your application. Your app never goes down. There is no app. Only individual lambda functions can go down.
- **Scale Infinitely:** A back-end comprised of Lambda functions comes with a ton of concurrency.
- **Be Cheap As Possible:** Lambda functions run only when they are called, and you pay only when they are run.
- **All Lambda Runtimes** While first release is `nodejs` only, we plan on adding support for all languages. This means each lambda in your JAWS project can be coded in the lang that best suites the problem.
- **API Gateway Auto-Deploy** Creates your API endpoints for you on API Gateway.
- **Multi-stage & Multi-Region:** Define stages for your project, and multiple regions with a stage. Driven by [CloudFormation](https://aws.amazon.com/cloudformation/).
## Architecture
Graphics coming soon...
## Quick Start
The guide below gets you started quickly. Later, check out the [best practices](https://github.com/jaws-framework/JAWS/wiki/Best-practices) guide in our [wiki](https://github.com/jaws-framework/JAWS/wiki) for tips on security and more.
* **[Setup an AWS account and create an administrative user](https://github.com/jaws-framework/JAWS/wiki/v1:-AWS-Account-setup)**
* ```$ npm install jaws-framework -g```
* ```$ jaws new project```
**Note:** we recommend camelCase for project names. [Why?](https://github.com/jaws-framework/JAWS/wiki/Best-practices#project-names)
* ```$ cd ```
* ```$ jaws new action users create```
* ```$ jaws dash```
This will create a new jaws project, create a lambda function and endpoint (and install [jaws-core-js awsm](https://github.com/jaws-framework/jaws-core-js)), which you can immediately deploy via
`jaws dash`. After deployment is complete, you will be given a url. In the above example, you can access your
deployed lambda at `your_url/users/create`.
## Where do I go from here?
We're currently working on our [docs](./docs/), [wiki](https://github.com/jaws-framework/JAWS/wiki), [best practices](https://github.com/jaws-framework/JAWS/wiki/Best-practices) and [FAQ](https://github.com/jaws-framework/JAWS/wiki/FAQ) pages.
Once you become familiar with JAWS, you can read about [JAWS AWSM: Amazon Web Services Modules](https://github.com/awsm-org/awsm) to start contributing awsm's to the community.
## How can I help?
Please check out the **[JAWS V1 Google Document](https://docs.google.com/document/d/1SeTgtsQc620vcwgGMZ4F2yuWVf-A3JmpTn1VT8pKYsA/edit#)** and our [CONTRIBUTING.md](./CONTRIBUTING.md) for coding and PR guidelines.