2.0.11 ā€¢ Published 11 months ago

baseline-webpage v2.0.11

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months 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

11 months ago

2.0.9

11 months ago

2.0.10

11 months ago

2.0.8

12 months ago

2.0.7

1 year ago

2.0.6

1 year ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago