bin/serverless-saas.ts CDK app entry: reads CDK_PARAM_*, creates the stacks
lib/control-plane-stack.ts SBT CognitoAuth + ControlPlane, event bus watcher
lib/bootstrap-template/ mapping table, tier API keys, source bucket, provisioning jobs
lib/tenant-template/ user pool, API + authorizer, usage plans, tiers, microservices
lib/tenant-pipeline/ CodePipeline + Step Functions + CodeBuild
layers/ shared Lambda layer: logger, metrics, auth_manager, tenant_data, Cognito
TenantAuthorizer/ the Lambda authorizer
ProductService/ OrderService/ one Lambda per route
UserManagementService/ one Lambda with a Powertools router
scripts/ CodeBuild job scripts: provision, deprovision, update tenant
tests/ pytest + moto unit tests, no AWS needed
admin/ React admin console (Vite, TypeScript, Amplify)
docs/ this site (Astro + Starlight)
screenshots/ Playwright login + capture scripts
cdk/ CDK app: serverless-saas-client (S3 + CloudFront + optional domain)
scripts/ deploy, upload-source, deploy-client, onboard/offboard, tokens, dev helpers, cleanup
docs/ one walkthrough per step, also published under "Build it step by step"