<aside> 🦉 A good product starts with a good code setup.

</aside>

At CAW, we develop many apps. We like to follow a common set of best practices across all the apps we develop. This playbook describes an opinionated scaffolding that jump-starts projects. This came about due to many commonalities between several of our projects.

Note, the best practices are just recommendations and not unbreakable rules. Context is the King; So always tweak the below recommendations as applicable to your product.

Use NodeJS Version v1.17.x with Express. We use TypeScript to develop the backend and not plain JavaScript.

DESIGN GUIDELINES

  1. We avoid MicroServices arch in v1; however, the codebase is designed to enable easy transition into one in future
  2. K8s deployment for v1 is overkill but the deployment strategy from the start should be K8s ready; Containerization is a must and the hosting should allow easy migration to future K8s deployment.
  3. We use TypeScript because we want a strongly typed system that consciously follows SOLID

CODEBASE SETUP

Monorepo

Folder Structure

Package.json

Environment File Setup

Code Styling and Linting

Static Code Analysis

Git Commit Hooks

CICD and HOSTING SETUP

PRs and Merge Checks

Hosting (WIP)