The new Fullstack website

Fullstack Logo We at FullStack are big on dogfooding so we decided it was time to move away from Wordpress. As our site is just a simple static site with the random blog post we decided to build something a lean as possible. This lead us to doing a serverless deployment using AWS, Jekyll, and a few scripts.

One of the great things about going serverless is that there’s no more upgrades and patching, no more security issues to worry about. On top of that it’s costing us less than $15 a year to host a SSL and CDN backed site.

So how did we do this?

We used the combation of following AWS services - S3, Cloudfront, Lamdba, API Gateway, and Route53 to host our site that’s assembled with Jekyll. In later posts I’ll go more into details about some of the not so obvious things. For now I’m just going to summarize what each service is used for.

  • S3 - The place where our site gets severed from.
  • Cloudfront - This provides us with a CDN. It als allows us to host your site with SSL. S3 doesn’t provide you with a way to using an SSL cert with a custom domain.
  • Lamdba - The service that runs any scripts your site might need. We just have a little python script to power our contact us form.
  • API Gateway - This allows you to expose your Lamdba script as an API call for your site. We have a tiny python script that we use for our contact form.
  • Route53 - You got to have some DNS.
  • A Bash Script - We have a little bash script that makes updates a breeze. It cleans up our URLs so we have nice clean ones with a extension. Uploads everything to S3 and then flushes the Cloudfront cache.

Need some help?

Do you need help creating your next high-performance app? Are you struggling to determine the right architecture for your next project? Contact us to discuss how we can help!

Further reading -

  • Jekyll
  • https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
  • https://aws.amazon.com/blogs/compute/implementing-default-directory-indexes-in-amazon-s3-backed-amazon-cloudfront-origins-using-lambdaedge/
  • https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html