Description
dawson is a serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gateway, Lambda). You can use dawson to build and deploy backend code and infrastructure for single-page apps + API, pure APIs or server-rendered pages.
dawson-cli alternatives and similar modules
Based on the "Web Frameworks" category.
Alternatively, view dawson-cli alternatives based on common mentions on social networks and blogs.
-
Nest
A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript ๐ -
Nuxt.js
DISCONTINUED. Nuxt is an intuitive and extendable way to create type-safe, performant and production-grade full-stack web apps and websites with Vue 3. [Moved to: https://github.com/nuxt/nuxt] -
AdonisJs Framework
AdonisJS is a TypeScript-first web framework for building web apps and API servers. It comes with support for testing, modern tooling, an ecosystem of official packages, and more. -
Encore
Open Source Development Platform for building robust type-safe distributed systems with declarative infrastructure -
Quick Start
๐ A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. ๐ -
Derby
MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers -
NestJS REST API boilerplate
NestJS boilerplate. Auth, TypeORM, Mongoose, Postgres, MongoDB, Mailing, I18N, Docker. -
ActionHero
Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks -
Lad
Node.js framework made by a former @expressjs TC and @koajs team member. Built for @forwardemail, @spamscanner, @breejs, @cabinjs, and @lassjs. -
Marble.js
Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS. -
lychee.js
DISCONTINUED. :seedling: Next-Gen AI-Assisted Isomorphic Application Engine for Embedded, Console, Mobile, Server and Desktop -
Hemera
๐ฌ Writing reliable & fault-tolerant microservices in Node.js https://hemerajs.github.io/hemera/ -
Catberry
Catberry is an isomorphic framework for building universal front-end apps using components, Flux architecture and progressive rendering. -
AdonisJs Application
DISCONTINUED. This repo is the pre-configured project structure to be used for creating ambitious web servers using AdonisJs. -
QueryQL
Easily add filtering, sorting, and pagination to your Node.js REST API through your old friend: the query string! -
FortJs
A feature-rich Node.js web framework designed for building powerful, scalable, and maintainable web applications. -
express-version-route
A Node.js express middleware that implements API versioning for route controllers -
Prim+RPC
Easy-to-understand, type-safe, transport-agnostic RPC/IPC for JavaScript, supporting callbacks, batching, file handling, custom serialization, and more.
Civic Auth - Auth in Less Than 5 Minutes

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of dawson-cli or a related project?
README
----
Sorry, this project is not maintained anymore.
----
dawson is a serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gateway, Lambda).
You can use dawson
to build and deploy backend code and infrastructure for single-page apps + API, pure APIs or server-rendered pages.
// api.js
import pug from 'pug';
const template = pug.compileFile('template.pug');
export async function greet (event) {
const name = event.params.path.name
const age = await getUserAge(name);
return template({ name, age });
}
greet.api = {
path: 'greet/{name}'
}
$ npm install -g @dawson/dawson-cli
$ export AWS_REGION=... AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=...
$ dawson deploy
Documentation
Getting Started Guide, API & CLI Documentation
Examples
Articles & Tutorials
About
dawson lets you to deploy your serverless Node.js apps on Amazon Web Services. It requires no boilerplate, no init
command and no configuration files. Just write your functions and deploy!
You can write your functions using the latest JavaScript version (babel-preset-latest
), including async-await, object-rest-spread etc. Functions can be async
and can return Promises. There's also built-in authorization support via API Gateway Custom Authorizers.
Each function has its own IAM Execution Role, so you can define fine-graned IAM Policies.
dawson offers first-class support for Single Page Applications: a CloudFront Distribution will be deployed in front of your app, correctly mapping assets and the API origin, so you don't have to worry about CORS. An AWS WAF WebACL can also be attached to CloudFront.
dawson does not bundle your app with webpack, browserify or rollup, so you'll never have to deal with weird things. Your app's devDependencies
are stripped out while deploying, keeping the bundle ZIP small.
dawson uses pure CloudFormation templates, following the infrastructure-as-code principle; it requires no local or remote state files which may go out-of-sync or mistakenly be deleted. You can customize your app's template in every part, e.g.: you can add CloudFormation Resources, modify Properties of Resources created by dawson etc. As a free benefit, you get out-of-the-box support for multiple stages and regions.
Finally, dawson will automatically support HTTPS for custom domains thanks to AWS ACM. Also, if you use Route53 your DNS Zone can be automatically updated.
CLI
Using the dawson command you can deploy the infrastructure, inspect logs (in real time, like tail -f
) and spin up a full development server so you can run your all locally in an environment will be almost identical to production's. The development server can also run functions locally in response to real AWS Events (S3 Events, DynamoDB Triggers etc.).
$ dawson deploy # deploy your app
$ dawson log -f functionName --follow # get function logs
$ dawson describe # list CloudFormation outputs
$ dawson dev # start a development server
Architecture
(additionally for each region you'll deploy to, dawson
uses a support stack with an S3 Bucket to store Lambda ZIP bundles and CloudFormation templates)
Changelog
A changelog is maintained in the Releases page.
Contributing
Any contribution is very welcome! You may pick an Issue, fork and start working on that. Should you need any guidance or help please ask :)
Testing
Run npm test
.
We are currently testing and targeting 100% coverage for functions that are involved in the template generation (src/factories/**.js
).
Contributors
Thanks goes to these wonderful people (emoji key):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> | Simone Lusenti๐ฌ ๐ ๐ ๐ป ๐ ๐ก ๐ ๐ ๐ ๐ข โ ๏ธ ๐ง โ | Alex Casalboni๐ฌ ๐ ๐ป ๐ก ๐ข โ ๏ธ ๐ง | Giacomo Consonni๐ป ๐ ๐ | Luca Casartelli๐ป ๐ | Chris Matheson๐ ๐ | Robert Kistner๐ ๐ป | | :---: | :---: | :---: | :---: | :---: | :---: | <!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the all-contributors specification. Contributions of any kind welcome!
<!-- Contributors START Simone_Lusenti lusentis https://twitter.com/Lanzone31 code infra doc tests example Alex_Casalboni alexcasalboni https://twitter.com/alex_casalboni code answers Giacomo_Consonni giaco9 https://twitter.com/GiacomoConsonni code Luca_Casartelli lcasartelli https://twitter.com/CasartelliLuca code doc Chris_Matheson chrismatheson https://twitter.com/chrismatheson doc Contributors END -->
Support
In case you have an issue, make sure you have updated to the latest version (e.g.: npm i @dawson/dawson-cli@latest
), then:
- search / post on StackOverflow using the dawson tag
- search / open an issue in this repo
- contact me on Twitter @Lanzone31
Related
- https://serverless.com/
- https://github.com/apex/apex
- https://claudiajs.com/
- https://www.terraform.io/
- https://github.com/awslabs/chalice
- https://github.com/Miserlou/Zappa
- https://github.com/jorgebastida/gordon
License
Copyright (C) 2016 Simone Lusenti
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*Note that all licence references and agreements mentioned in the dawson-cli README section above
are relevant to that project's source code only.