Confetti: A toolkit for setting up and deploying static sites on AWS

boot
clojure

#1

Confetti is one of those projects where I’m not sure if anybody is using it but I use it all the time myself. :slightly_smiling_face:

The idea is simple:

Static sites are great because they are easy to maintain.
Lower the barrier to entry by making it easier to create and deploy them.

Running static sites on AWS is really nice because you get a lot of nice things for little money:

  • SSL (yeah, the green lock that we all love)
  • Global distribution using Cloudfront
  • Cheap storage of your files (S3)

Setting all that up however can be quite a bit of work however and that is where Confetti comes in. Confetti does all the wiring and packages it in a Cloudformation Stack which is also easy to delete if something got screwed up.

Basically you run

boot -d confetti create-site --domain "my-app.com" --access-key XXX --secret-key YYY --dns

And 15 minutes later (Cloudfront distributions take some time to be ready) you’ll have an S3 bucket to deploy to and a designated access key that is only allowed to modify this S3 bucket.

You can then use any tool to sync files. Confetti also provides tools to do that of course.

Consider it next time when you:

  • deploy a single page app
  • create a blog based on a static site generator
  • create a documentation site for you project or company
  • create any kind of statically rendererd website.

Happy deploying :tada:

PS. As part of Confetti I also created a library for syncing stuff to S3 which I had a lot of fun writing. It is probably the most versatile of all S3 syncing libraries I know. Check it out of you need to sync stuff to S3 :slight_smile:


#3

Will definitely try it with next static site.

I’m currently using netlify for static websites and I’m happy with it. I’m still in the free tier though so it might make sense to reassess if I need another plan


#4

I haven’t used Netlify but it does provide some nice features. Some things that Netlify does that would be hard or at least require some work with Confetti:

  • Atomic Deploys
  • Unlimited Snapshots / Versioning & Rollbacks
  • Instant Cache Invalidation (CloudFront cache invalidation times vary)
  • Automated Builds (can be done with CI though)
  • Branch Based Split Testing
  • Form Submission Hooks
  • Multiple Environments Support (dev/staging/…) (would be possible by creating multiple sites)
  • Single Page App Prerendering

These are mostly copied from the Netlify features page. Netlify’s free plan is definitely a strong competitor :wink: That said I’m more comfortable with AWS than a smaller platform like Netlify and haven’t had a strong need for any of the additional features.

Also Confetti was created at a time when Netlify didn’t exist or at least was still relatively unknown.
Maybe I should have turned it into a company too :money_with_wings: :sweat_smile:


#5