Skip to content

Repository files navigation

Serverless By Design

Serverless by Design screenshot

Serverless By Design is a visual approach to serverless development:

  • An application is a network of nodes (serverless resources, such as Lambda functions or S3 buckets) connected by edges (their relationships, for example a trigger or a data flow)
  • Edit an application adding nodes and edges following an event-driven design
  • Import a previously exported application to continue working on it
  • Choose a runtime, and build your application (for example, using AWS SAM)
  • Optionally use canary or linear deployments for your future updates
  • Edit templates and code files for the final configurations before deploying the application
  • Export an application to save it for later use in a JSON file
  • Take a picture of the application architecture to have a visual representation to share
  • Fine tune the physics used to place nodes and edges on the screen, for example enable/disable it or choose another solver

Serverless By Design runs in the browser and doesn't need an internet connection when installed locally.

Think. Build. Repeat.

Supported Resources

ResourceKey
API Gatewayapi
Cognito Identity PoolcognitoIdentity
DynamoDB Tabletable
EventBridge BuseventBus
IoT Topic RuleiotRule
Kinesis Data AnalyticsanalyticsStream
Kinesis Data FirehosedeliveryStream
Kinesis Data Streamstream
Lambda Functionfn
S3 Bucketbucket
Schedule (CloudWatch)schedule
SNS Topictopic
SQS Queuequeue
Step FunctionsstepFn

Build Engines

  • AWS SAM — generates template.yaml with SAM intrinsic functions
  • Serverless Framework — generates serverless.yml with JSON-form CloudFormation syntax

Runtimes

  • Node.js 22.x / 20.x
  • Python 3.13 / 3.12

License

Copyright (c) 2017-2026 Danilo Poccia, http://danilop.net

This code is licensed under the The MIT License (MIT). Please see the LICENSE file that accompanies this project for the terms of use.

Installation

You need node (v18+) and npm. Install dependencies and build:

npm install
npm run build

Then preview the production build:

npm run preview

For development with hot module replacement:

npm run dev

Development

The codebase is written in TypeScript with strict mode enabled.

Lint (ESLint with typescript-eslint):

npm run lint
npm run lint:fix

Type check:

npm run typecheck

A pre-commit hook (husky + lint-staged) runs ESLint and type checking automatically on staged files.

Usage

Here are a few examples to help you start:

Dependencies

Releases

Packages

Used by

Contributors

Languages