Blogging with blogdown

· by Brian Anderson · Read in about 3 min · (594 words) ·

I remember building my first website in 1995—once a geek, always a geek :) But as I moved around careers, there was not always a need to keep an online presence. In academia though, I’m convinced now that blogging and online engagement is a valuable way to deepen scholarly impact. This past spring I’ve found that blogging has helped my writing productivity, and forced me to think through how I would communicate stats topics in a more impactful (shorter) format.

And it’s kinda cool when someone tells you that they found a post useful…Yeah, I’m not ashamed to admit I like to get the ego stroked every now and then :)

I started with Wordpress, and it was fine, and it was free, thanks to UMKC. What I didn’t like was the workflow. I prefer to write in markdown/Rmarkdown, because all of my course materials use R in some way or another. But that meant that I was creating posts in RStudio or my favorite writing app, Ulysses, then uploading supporting files as necessary to my UMKC repository, and then preparing posts in WordPress. I was just a bit clunky.

That and trying to use Mathjax on WordPress was just too frustrating.

Enter blogdown. This package is, well, one of the coolest things since the x-wing fighter (see, still a geek). Others have amply described how-to’s and there setups, so I’ll just focus on how I’ve set things up, and why it’s improved my workflow.

Hosting with UpDog

One of the first decisions was where to put the site. I don’t get much traffic, and didn’t need much beyond static pages that are the underlying value of blogdown. Most blogdown users seem to be hosting with GutHub Pages, which is pretty cool and I might make that switch someday.

But what really appealed to me was UpDog, because it simply hosts the site directly from your own Google Drive or Dropbox folder. I wanted my own domain name (, so that meant I was going to use Dropbox, which I do already, and I wanted some additional flxibility, so I bought the pro package ($3/month). To add pages, files, resources, etc to the site, I just drag and drop them into my website Dropbox folder. That’s it—no commits, and no SSH.

Creating site content

With the site already ‘live’ because it’s tied to the dropbox folder, I setup a project in RStudio in my dropbox account. Blogdown creates a /public/ folder that becomes the site’s root. For me, I just pointed my Updog account to that /public/ dropbox folder. Now any changes to my site using blogdown::build_site() are immediately visible on Couldn’t get much easier.

Even easier for me though is using that dropbox folder to share course content and other resources. I can also create sub-folders that are shared for collaboration. Yes, they are all public facing, but I really don’t need to keep most of my work behind the wall :)

A couple of hiccups

The setup and deployment process for blogdown and Updog were pretty simple. One thing that I had trouble with though, and still have trouble with, are posts that double, or triple post after one call to blogdown::build_site(). What’s interesting is that I can call blogdown::build_site() again right afterward, and I get just the one post I wanted. Not sure why that is happening. I also found that editing the site template’s css to be some trial and error, although that was a function of the template I chose. In the end though, we’re up and running!