Quick Start

Get your FastAWS startup deployed in minutes.

Prerequisites

  • FastAWS Access - You must have access to the FastAWS repository to proceed
  • Git - Version control system for cloning the repository
  • Node.js 18+ - JavaScript runtime for your computer
  • AWS Account & CLI - AWS account to deploy infrastructure, plus the CLI tool
  • Stripe Account (Price IDs, webhook-secret, secret key) - Necessary if you want to take payments

1. Clone, Install & Set Up Environment Files

Open your IDE (e.g. VS Code, Cursor or Google Antigravity) and run the following commands:

git clone https://github.com/sph94/fastaws.git && cd fastaws && git remote remove origin && mv .env.dev.example .env.dev && mv .env.prod.example .env.prod && npm install && npm --prefix backend install && npm --prefix backend/lambdas install && npm --prefix frontend install

Note: You are now in the fastaws directory. All subsequent commands should be run from here .

2. Configure AWS

Connect your AWS account credentials so the CLI can deploy your infrastructure.

aws configure

You'll be asked for your AWS Access Key ID and Secret Access Key (get these from IAM console - Users > Create user > Attach 'AdministratorAccess' policy > click user > create access key > CLI). Do not share your keys with anyone. Choose the same region from the prerequisites above. Your AWS account settings will persist across your computer (all terminals).

3. Add Your Stripe Keys

Update config/app-config.ts with your Price ID(s) - as detailed in the prerequisites above. Add as many plans as you intend to have. You can add more later if needed.

Look for the STRIPE_PRICE_IDS object in app-config.ts and update with your actual Stripe price IDs from your Stripe Dashboard.

For Development (Skip if you do not want to first test locally before launching a live site)

Add your Stripe keys to AWS Systems Manager (SSM) Parameter Store:

# Add keys specifically for the 'dev' environment aws ssm put-parameter --name "/stripe/secret-key-dev" --value "sk*test*..." --type "SecureString" aws ssm put-parameter --name "/stripe/webhook-secret-dev" --value "whsec_..." --type "SecureString"

For Production (Your live site)

When ready to deploy to production, update the SSM parameters with your Stripe live keys (from Live Mode in Stripe Dashboard):

# Add keys specifically for the 'prod' environment aws ssm put-parameter --name "/stripe/secret-key-prod" --value "sk*live*..." --type "SecureString" --overwrite aws ssm put-parameter --name "/stripe/webhook-secret-prod" --value "whsec*live*..." --type "SecureString" --overwrite

or do this via the AWS console, go to Parameter Store > SecureString > Create Parameter.

4. Configure Your App

Edit your app settings in config/app-config.ts:

export const PERMANENT_AWS_RESOURCE_NAMING = "your-unique-permanent-name"; export const APP_NAME = "Your Startup Name"; export const AWS_REGION = "eu-west-1"; // or us-east-1 export const DOMAIN = "https://yourdomain.com";

PERMANENT_AWS_RESOURCE_NAMING must be globally unique, e.g. 'mike-smith-workout-app-9384329' (with random digits recommended). Do not change this once deployed. Your users will never see it - they will see your value for APP_NAME.

5. Bootstrap CDK (First Time Only)

CDK bootstrap sets up the required AWS resources (S3 bucket, IAM roles) that CDK needs to deploy your app. Run this once per AWS account/region combination:

cd backend && npx cdk bootstrap && cd ..

When to re-bootstrap: Only if you deploy to a new AWS region or a different AWS account.

6. Deploy

# Deploy to dev environment (uses .env.dev) npm run deploy:dev # Start development server npm run dev

Your app is now live at localhost:3000 with a deployed AWS backend!

Note: npm run deploy:dev automatically uses .env.dev. When you're ready for production, you'll use npm run deploy:prod which uses .env.prod.

7. Set Up Stripe Webhook (Optional if you want to accept Stripe payments)

8. Add Sign in with Google (Optional)

9. Go to Production

  1. Update .env.prod with your live Stripe keys (from Live Mode in Stripe Dashboard)
  2. Update app-config.ts with live Stripe Price IDs in the prod section
  3. Deploy backend: npm run deploy:prod (automatically uses .env.prod)
  4. Deploy frontend to AWS Amplify (see Deployment guide)

Done! You now have a production SaaS with payments, auth, and AWS infrastructure.

Remember to think about your DynamoDB data model. For this you can either read up on DynamoDB data modelling - or simply tell your AI the types of queries/lookups you need to perform and ask it to create your data model for you (fine for a quick MVP).

Next: Configurationin Getting Started