The Best LiveJournal and Google+ Backups

With Google+ going away, I made backups of both my LiveJournal and my Google+ accounts. Here’s why I love the backups:

User Experience

  • They’re super fast. Just static HTML5 (except for the search functionality), no frameworks, no libraries.
  • You can navigate from the keyboard. Either the arrow keys, gaming WASD keys, or Vim’s HJKL keys. Whatever you like. Go left and right to navigate HTML pages, up and down to navigate posts within pages.
  • They’re mobile-responsive. They use CSS grid to make the main column featured and readable regardless of screen width. On a touch device, you single-finger swipe left and right to navigate pages.
  • No GRDP cookie warning overlay. No cookies! The backups don’t care who you are.
  • Secure. The backups do care that nobody can snoop the contents of your visit. So they’re HTTPS.
  • No overlays at all. No time-delay “sign in to my email list” overlays, no navigation-event “before you leave” overlays. My backups respect your focus and choices.
  • No autoplay ads. No ads at all. My backups aren’t trying to sell you anything. They’re nothing but content.
  • They each hint at the style of the original journal. Same types of article bylines, sidebars, and theme style. Nostalgic.

Archiving Tips and Experiences

The era of LiveJournal, where we wrote long-form thought pieces and our friends wrote longer replies back was a deeper interaction than what we experience with current social networks. These backups are just for me, but I really do love remembering protips like:

Continuing Education and Custom Solutions

Having written the archives, it was rewarding to come up with solutions to the workflows I would care about. For example, I didn’t want a calendar in the sidebar, there’s not enough posts for most months. But I do want to be able to search by date. So if I search for “2007–10”, I get search results by post date, in reverse chronological order.

usort($results, function ($a, $b) {
if ($a['count'] == $b['count']) {
return strcmp($b['date'], $a['date']);
return $b['count'] — $a['count'];

A rock-climbing father of two and software developer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store