https://github.com/sudokar/nx-serverless
Modern Serverless framework starter template using Nrwl Nx monorepo dev toolkit
https://github.com/sudokar/nx-serverless
boilerplate monoreepo nx scaffolding serverless starter template
Last synced: about 2 months ago
JSON representation
Modern Serverless framework starter template using Nrwl Nx monorepo dev toolkit
- Host: GitHub
- URL: https://github.com/sudokar/nx-serverless
- Owner: sudokar
- License: mit
- Created: 2021-06-20T19:59:51.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2026-02-06T13:16:27.000Z (about 2 months ago)
- Last Synced: 2026-02-06T21:17:59.855Z (about 2 months ago)
- Topics: boilerplate, monoreepo, nx, scaffolding, serverless, starter, template
- Language: TypeScript
- Homepage: https://github.com/sudokar/nx-serverless
- Size: 20 MB
- Stars: 146
- Watchers: 3
- Forks: 13
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# nx-serverless-monorepo
[](http://www.serverless.com)
[](https://nx.dev/)



[](https://github.com/sudokar/nx-serverless/blob/master/LICENSE)
[](http://isitmaintained.com/project/Naereen/badges 'Percentage of issues still open')
[](https://github.com/sudokar/nx-serverless)



A monrepo style, modern boilerplate or template project for [Serverless framework](https://www.serverless.com/) using [Nx](https://nx.dev) monorepo toolkit 🛠and `aws-nodejs-typescript` serverless template
## Table of contents
- [Whats Included](#whats-included)
- [Template Layout](#template-layout)
- [Prerequisites](#prerequisites)
- [Usage](#usage)
- [Further help](#further-help)
- [Nx Cloud](#nx-cloud)
- [Contribution](#contribution)
- [Support](#support)
- [Maintainer](#maintainer)
- [License](#license)
## Whats Included
- A template project layout using latest version of Nx and Servrless framework
- An easy to use workspace generator to generate a template/stack with Serverless framework files and related Nx configuration
- Configured with AWS provider and it can be easily adopted to any cloud provider
## Template Layout
```shell
.
├── stacks/ # stack for each serverless configuration/template and its associated files
├── libs/ # shared libraries
├── tools/
├── README.md
├── jest.config.js
├── jest.preset.js
├── nx.json
├── package.json
├── serverless.base.ts # base configuration for serverless
├── tsconfig.base.json
├── workspace.json
├── .editorconfig
├── .eslintrc.json
├── .gitignore
├── .husky # git hooks
├── .nvmrc
├── .prettierignore
├── .prettierrc
```
## Prerequisites
- [Nodejs](https://nodejs.org/) `protip: use nvm`
> :warning: **Version**: `lts/iron (v20)`. If you're using [nvm](https://github.com/nvm-sh/nvm), run `nvm use` to ensure you're using the same Node version in local and in your lambda's runtime.
- :package: Package Manager
- [Yarn](https://yarnpkg.com)
- 💅 Code format plugins
- [Eslint](https://eslint.org/)
- [Prettier](https://prettier.io/)
- [EditorConfig](https://editorconfig.org/)
> On your preferred code editor, Install plugins for the above list of tools
## Usage
Depending on your prefrered package manager, follow the instructions below to build and deploy serverless stack(s).
- **Install project dependencies**
```shell
yarn install
```
- **Generate a new stack**
```shell
nx g serverless
```
> Run with `-d` or `--dry-run` flag for dry run
- **Generate a new library**
```shell
nx g @nx/node:lib --skipBabelrc --tags lib
```
> Run with `-d` or `--dry-run` flag for dry run
- **Package stack**
- To package single stack
```shell
nx run :build --stage=
```
- To package stack affected by a change
```shell
nx affected:build --stage=
```
- To package all stacks
```shell
nx run-many --target=build --stage=
```
- **Deploy stack to cloud**
- To deploy single stack
```shell
nx run :deploy --stage=
```
- To deploy stack affected by a change
```shell
nx affected:deploy --stage=
```
- To deploy all stacks
```shell
nx run-many --target=deploy --all --stage=
```
- **Remove stack from cloud**
- To remove single stack
```shell
nx run :remove --stage=
```
- To remove stack affected by a change
```shell
nx affected:remove --stage=
```
- To remove all stacks
```shell
nx run-many --target=remove --all --stage=
```
- **Run tests**
- To run tests in single stack
```shell
nx run :test --stage=
```
- To run tests affected by a change
```shell
nx affected:test --stage=
```
- To run tests in all stacks
```shell
nx run-many --target=test --all --stage=
```
- **Run offline / locally**
- To run offlline, configure `serverless-offline` plugin as documented [here](https://github.com/dherault/serverless-offline) and run below command
```shell
nx run :serve --stage=
```
- **Understand your workspace**
```
nx dep-graph
```
## Further help
- Visit [Serverless Documentation](https://www.serverless.com/framework/docs/) to learn more about Serverless framework
- Visit [Nx Documentation](https://nx.dev) to learn more about Nx dev toolkit
- Why NX, not Lerna? Lerna is no longer maintained
## Nx Cloud
##### Computation Memoization in the Cloud
​ Nx Cloud pairs with Nx in order to enable you to build and test code more rapidly, by up to 10 times.
​ Visit [Nx Cloud](https://nx.app/) to learn more and enable it
## Contribution
Found an issue? feel free to raise an issue with information to reproduce.
Pull requests are welcome to improve.
## Support
Like the template?
Or, Add a star :star: to the repository
## Maintainer
This template is authored and maintained by [sudokar](https://github.com/sudokar)
## License
MIT
