2.0.11 • Published 2 years ago

baseline-webpage v2.0.11

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Baseline Webpage

A simple React static site that is deployed to AWS using serverless.

serverless node platform pm framework CDN license types

Goals

  • Deploy quickly with minimal effort
  • Everything you need to start building straight away with production quality
  • Support deployment from local, Bitbucket & GitHub
  • Deploy and test ideas before you buy that perfect domain name
  • Prod, staging and local environments separated from the start

Features

  • āš”ļø Serverless
  • šŸ’° Cost friendly - only pay for what you use
  • šŸŒ Fast and global CDN with Cloudfront
  • ✨ Automatic cache invalidation (1000 free per month - check pricing)
  • šŸ‘‰ Redirect HTTP to HTTPS
  • šŸš€ Ready to use Bitbucket Pipeline and Github Action
  • āŒØļø Deploy from your local machine (optional)
  • šŸ¤ HTTP2 support
  • šŸ—œ Gzip and Brotli compression
  • šŸ— Modern tools Typescript, React, Serverless Framework
  • šŸ” HTTPS/TLS support
  • šŸ’» Team Collaboration - Great for a single developer or a whole team
  • šŸ„ž Perfect for a Jamstack
  • šŸŽ Fast Deployments - deploy changes quicker!
  • ā˜Žļø Minimal configuration required to get started
  • šŸ›£ DNS with Route53
  • āœ… Free SSL/TLS with AWS Certificate Manager when using Route53
  • šŸŽ¬ Test new ideas quickly and single command tear down when you are done, no mess
  • šŸ”‘ Support AWS CLI Profiles - no need to use default for everything!

Lighthouse Scores

Start with a perfect score!

šŸŽ‰ Lighthouse Performance Lighthouse Accessibility Lighthouse Best Practices Lighthouse SEO šŸŽ‰

Demo

See Baseline Webpage in action

Local Requirements

Project Setup

  1. npx baseline-webpage@latest my-app where my-app is the name of your app
  2. cd my-app and npm run aws:profile which will configure AWS CLI with a new profile and is only required for deploying from local (if you have issues please update aws cli)

Run Locally

  1. npm start

Deploying

  1. npm run deploy:staging
  2. The output from the deploy will show WebsiteUrl that the site was deployed to. If you need to find it again you can run npm run info:staging

Deploy a Change

  1. npm run deploy:staging
  2. Allow some time for the Cloudfront cache invalidation to finish to see changes in browser

Adding a Domain

  • Deploy first
  • Set up a Route53 Hosted zone for the desired domain name
  • Create a single ACM certificate for *.$DOMAIN_NAME & $DOMAIN_NAME
  • Add an "Alternate domain name" to the Distribution that matches your buckets name
  • Edit Route53 and point the domain with an A record to the Distribution

Remove Stack

To destroy the deployed stack so it is no longer on AWS run npm run remove:staging.

Environment Flag

You can add checks in the code to determine if you are in a deployed or development environment. Development will only be for locally run code. Currently cannot tell the difference between deployed staging and prod.

  • process.env.NODE_ENV === 'production'
  • process.env.NODE_ENV === 'development'

Pipeline Variables

The main and prod branches will trigger the action/pipeline to deploy. The stage is determined by the branch name being "prod" or not.

GitHub

Create two Actions secrets with the AWS account keys you will deploy with:

  • AWS_ACCESS_KEY_ID = xxxx
  • AWS_SECRET_ACCESS_KEY = xxxx

Bitbucket

If you are using the BitBucket pipeline deployment then you will need to set these pipeline environment variables in BitBucket:

  • AWS_ACCESS_KEY_ID = xxxx
  • AWS_SECRET_ACCESS_KEY = xxxx
  • AWS_PROFILE = baseline-webpage
  • REGION = ap-southeast-2

Optionally these can be used if staging and prod are in different accounts or the IAM roles have different access:

  • PROD_AWS_ACCOUNT_ACCESS_KEY_ID = xxxx
  • PROD_AWS_ACCOUNT_SECRET_ACCESS_KEY = xxxx
  • NON_AWS_ACCOUNT_ACCESS_KEY_ID = xxxx
  • NON_AWS_ACCOUNT_SECRET_ACCESS_KEY = xxxx

Baseline

If you would like to learn more about what we do please visit Baseline

License

Baseline Webpage is MIT licensed.

2.0.11

2 years ago

2.0.9

2 years ago

2.0.10

2 years ago

2.0.8

2 years ago

2.0.7

2 years ago

2.0.6

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago