so you can just ship fullstack web on aws.
start with working implementations of everything, then iterate.
fast and reliable automation.
easy browser testing.
the tightest possible security policy, no other js can ever run.
a project scaffold for a fullstack webapp on aws with an infrastructure set ready-to-deploy with libaws.
the project scaffold contains:
a live demo is here.
the lambda zip contains only 3 files:
>> ls -lh | awk '{print $9, $5}' | column -t
favicon.png 2.7K # favicon
index.html.gz 296K # web app
main 15M # go binary
the index.html.gz:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Security-Policy" content="script-src 'sha256-${JS_SHA256}'">
<link rel="icon" href="/favicon.png">
</head>
<body>
<div id="app"></div>
<script type="text/javascript">
${JS}
</script>
</body>
</html>
the lambda zip itself:
>> ls -lh | awk '{print $9, $5}'
lambda.zip 4.6M
use the included Dockerfile or install the following dependencies:
aws route53 has the domain or its parent from env.sh
aws acm has a wildcard cert for the domain or its parent from env.sh
git clone https://github.com/nathants/aws-gocljs
cd aws-gocljs
cp env.sh.template env.sh # update values
bash bin/check.sh # lint
bash bin/preview.sh # preview changes to aws infra
bash bin/ensure.sh # ensure aws infra
bash bin/dev.sh # iterate on backend and frontend
bash bin/logs.sh # tail the logs
bash bin/delete.sh # delete aws infra