Purple Stack

screenshot of Purple Stack
nextjs

Serverless monorepo stack powering all Purple Apps and your apps

Overview:

Purple Stack is a devstack that is designed for developing large and complex serverless applications on AWS. It is built based on the experience of the Purple team with over 5 years of serverless app development. The stack includes a combination of frontend and backend components, such as Next.js, AWS AppSync, Amazon API Gateway, and more. It also offers features like TypeScript, Serverless Framework, Monorepo, Code Linting, GraphQL API, REST API, CI/CD, and many others.

Features:

  • TypeScript: Allows developers to write serverless applications using TypeScript, providing type safety and better code organization.
  • Serverless Framework: Utilizes the Serverless Framework to simplify the deployment and management of serverless applications on AWS.
  • Next.js: A popular JavaScript framework for building server-side rendered React applications, used for the frontend part of the stack.
  • React.js: A JavaScript library for building user interfaces.
  • Webpack: A module bundler that enables developers to bundle and optimize their JavaScript code.
  • Monorepo - Lerna: Enables managing multiple related projects in a single repository, improving code sharing and collaboration.
  • Code Linting - ESlint + Prettier: Enforces code quality and conventions by automatically identifying and fixing common errors and formatting issues.
  • GraphQL API - AWS AppSync: Offers a powerful and flexible API for querying and manipulating data, using AWS AppSync.
  • REST API - Amazon API Gateway: Provides a scalable and serverless way to build RESTful APIs, utilizing Amazon API Gateway.
  • Complex background processes - AWS Step Functions: Allows developers to define and orchestrate complex serverless workflows using AWS Step Functions.
  • IaC - CloudFormation: Uses AWS CloudFormation to define and provision AWS resources as code, ensuring infrastructure consistency and reliability.
  • CI/CD - CircleCI: Supports continuous integration and continuous deployment, enabling automated testing and deployments.
  • Dependencies patching - Renovate: Automates the process of updating and patching dependencies, ensuring applications are up-to-date and secure.
  • IaC Security Scanning - Checkov: Performs security scanning and checks on Infrastructure as Code (IaC) templates to identify and address security vulnerabilities.
  • Static Application Security Testing (SAST) - ESlint Security Plugins: Enhances application security by scanning and identifying potential security vulnerabilities in the codebase.
  • Unit Tests - Jest: Provides a powerful and easy-to-use testing framework for JavaScript applications, ensuring the reliability and correctness of the code.
  • Conventional Commits - Commitlint: Enforces conventional commit messages, promoting better commit practices and improving codebase maintainability.
  • GraphQL TypeScript Types - GraphQL Code Generator: Generates TypeScript types based on GraphQL schema, enabling type safety and improved developer experience.

Summary:

Purple Stack is a comprehensive devstack designed for building large and complex serverless applications on AWS. It provides a wide range of features and tools, including TypeScript, Next.js, React.js, Monorepo, Code Linting, AWS AppSync, Amazon API Gateway, AWS Step Functions, CloudFormation, CI/CD with CircleCI, dependency patching with Renovate, security scanning with Checkov and ESlint Security Plugins, unit testing with Jest, and more. Its modular architecture and extensive configuration options make it a versatile solution for serverless development.

nextjs
Next.js

Next.js is a React-based web framework that enables server-side rendering, static site generation, and other powerful features for building modern web applications.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.