blogdown magic

I made this blog using the magic of blogdown which is a framework that joins together a few technologies to make ‘static websites’

  • RMarkdown
  • Hugo

RMarkdown

RMarkdown is an interface from R to markdown which is a way of marking up a text document with formating so other tools can convert it from a text file to a pretty format (PDF, Word, etc.) It’s a great way of documenting your code by having your narrative right next to the code that generated the insights/results.

Hugo

Hugo is a static website generator written in Go. That’s all I know.

Static website?

Most content on the web uses ‘server-side’ technology to render dynamic websites. It means that each time you access the same URL you could get different content based on who you are, where you’re from, etc. Contrast this with a ‘static site’ which is just a set of HTML files being served up. Granted - with Javascript you can do a lot of changing on the fly but that’s neither here nor there.

Wordpress as a blogging platform is an example of a dynamic website - each blog post is stored in a database and served from there.

Having a dynamic website means you need a server that can execute the code and serve up the pages. Provders like GoDaddy will sell you webhosting for $7/mo which is pretty cheap. In fact, for Wordpress, you’re essentially buying a SaaS solution (Software as a Solution) even though it’s really PaaS (Platform as a Service). You could buy a server from Digital Ocean, setup your own webserver and host it there. I actually ran servers out of my apartment when I was in college doing essentially this (granted, DO is Infrastructure as a Service where I was running bare metal). But then you have to administer the service which is…ugh. A pain.

But often times I like to do things differently not to necessarily save money but because they’re more novel. So, I wanted to host a static website with an Amazon S3 bucket because you can. And it’s supposed to be cheap. Pennies a month.

Domain Name

I bought my domain name from GoDaddy despite the myriad of ethical reasons not to. I’ve used them for years and while I know they’re evil, I already have an account and domains there.

AWS S3

I already have an AWS account to manage my Lambda programs and hosting a bucket of pictures of miniature figures I scrape from Twitter so it wasn’t a big deal to make a few extra buckets.

Cloudflare

I’m trying to use Cloudflare to manage my DNS and direct traffic from the domain name to the S3 bucket. This part isn’t going well right now.

GitHub

I’m using GitHub as a…backup? It gives me a place to commit changes to and lets me work across multiple computers without missing a beat.

Travis CI

Travis CI is a ‘continuous integration’ system which will build your code to test it each time you commit to GitHub. I’ve used it to test builds of my package readOffice as I’m developing it. Here, I’m using it to auto migrate new content to the S3 bucket.

Conclusion

I’m stitching together a bunch of technologies that I’ve never/rarely used to make a blog. Which I’ve done lots of times using other solutions before.