Building shutdownability, closing down Contributoria the nice way.

Turning off and archiving our Slack channel was the final act in shutting down Contributoria, the project that’s been my main job for the last two years. All those Git commits, Rollbar errors, gifs of cats spectacularly failing at jumping, sign-ups, user activity, reading time statistics and so on gone, like leaves on the wind.

That’s the moment when I knew it was all over. But there were lots of smaller moments just before then that went towards shutting a start-up down.

When shutting something down on the internet there seems to be three ways to go.

  1. Get bought out by a larger company, burn everything to the ground and end up on the Our Incredible Journey tumblr.
  2. Fuck up your business model (or simply just not have one), burn everything to the ground and end up on the Tech Crunch.
  3. Acknowledge the project is coming to an end, spend time freeing all the assets (as Tiny Speck did with Glitch resources putting code and art into the public domain) or turning your site into a time capsule, the best recent example probably being ThisIsMyJam.

Back in the day some of us at Flickr would occasionally mull over the question “What happens if Flickr goes away? Once you become the repository of millions upon millions of photos, do you have a moral obligation to preserve them?” which in turn becomes the WWY!D? question.

And knowing exactly what the answer to What Would Yahoo! Do? is enough to want to do better.

With Contributoria offering to be the custodians of writer’s work, how can we do the best job we can to make sure we don’t let those writers down? So right from the start Contributoria was built to be shutdownable in the 3rd “nice way”.

Those not familiar with Contributoria and want to know what it was should check out the footnote “About Contributoria” below. (tl;dr a site where writers got paid to write, without being covered in adverts*).

While not a slick as ThisIsMyJam I wanted to take the time to make a few notes on what we did to not just throw everything away.

Shutting down, with code

Sorry for the next very obvious bit: decisions you take at the start of a project can make actions further down the line either easier or harder. The trick to success (aside from the more important luck) is to identify the further down the line stuff as best as you can to make well informed early decisions that’ll guide you there. The more stuff you build, the better at this you get.

I’m not saying that you should decided on day one that you’re going to shut down eventually and code everything around that, but to at least factor in the possibility. Fortunately shutting down coincides with a few good practices. These are what we used.

1. Feature Flags.

I first got introduced to these at Flickr and some of these are partly a function of that being a long time ago in Internet terms. A time where flipping between source control branches wasn’t as super easy as it is now and continuous deployment essentially meant that if you committed code it’d almost certainly go out into production later that day. Therefor you’d hide new feature or functionality behind flags that you could turn on with ease.

The beauty of this is that you’re not deploying code to launch new features, which still happens a surprising amount, but rather the code could have been waiting on the site, hidden for days (or weeks) and all you need to do it flip the switch when everyone is ready. By “ready” I mean your community team are poised to react in the forums, twitter, facebook etc.

Of course the best part about them is you can turn features off again, which we did quite liberally with Contributoria, switch non-essential bits off first, working our way up to the grand shutdown.

There were also a few things to turn on, Dean and Nat designed & build archive pages, the final homepage and various copy changes to the site to go along with various stages of shutting down. All that was left for me to do was flip those switches on at the right time throughout the last month.

Preparing for shutdown was a bit like launching a site & somewhat involved, but actually doing it was surprisingly anti-climatic, “BRB just turning the site off”.

2. Read only mode.

Along with feature flags we also had the Read Only Switch Of Doom for times we needed to do late night database backfills and migrations. Time where we really didn’t want writes to the database taking place.

This also disabled comments, backing proposals, profile editing and all the writey-things.

Which means we already had the code in place to stop any updates being made to the database. Giving us our final never to be changed One Database of Truth.

3. “Offline” read only mode.

Beyond read only mode, is the “OMG the backend can’t see the database at all” mode. Because we were a start-up our backend servers were in one place, while our databases were hosted somewhere else because sometimes databases are hard.

While running, the site would periodically save to disk “flat” versions of pages being served, saved in the context of a logged out user. If for some reason the backend servers couldn’t reach the database the site was built to flip over into read only mode and serve the local versions of articles, issues, user profiles, images and so on.

That last one is very dependent on the function and scale of your site and so isn’t for everyone.

Because we’d planned the site with several failsafe controls we had pretty much all the code in place to put it into its final archive state.

Nat took charge of the final step, writing the code that’d turn the whole site into static HTML that could be run locally, an archive file to be submitted to and so on. Wonderfully the tool Nat wrote was elegant, beautifully documented and designed to be ultimately run just the once. It worked perfectly.

With our archive FTPed (old skool) to a more lightweight server we could retire all the old code, servers, CDNs, analytics and database. Which, pro-tip: when you start a start-up don’t set up all the accounts against your own credit card, I was rather pleased about. The only additional thing still being paid for is the fonts, because you still want your archive to look stylish!

Shutting down, with users

A good while before we switched functionality off we let the users know what was happening. We also refunded the final months membership and payed writers kill fees for articles. The advance notice gave them a couple of months to delete any of their own content they didn’t want archived for the rest of eternity.

It’s almost as bad to suddenly tell users that “Hey, we’re going to archive everything you’ve done, and by the way we’ve turned logging in off” as it is to delete everything.

8 people did.

Shutting down, with archiving

As well as the site, Contributoria lived in a couple of other mediums. Members could download monthly kindle issues and we sent honest to goodness newspapers (lovingly put together by yours truly and published by Newspaper Club) to premium users. It’s odd looking back over the last two years to think that I helped to publish a monthly newspaper.

We decided to make all of those public, anyone can view and download the ePub/mobi versions of the monthly issues from the archive page. We flipped the papers to be embeddable and downloadable as PDFs from our Newspaper Club newstand, you can even buy them for old times sake.

Yes, even if the server dies there’ll still be paper archived copies of the best articles around, take that GeoCites!

In all it took about two months from announcing the shutdown to carefully bringing it in to land while letting users know what was happening. With press releases, a final print run in the 1,000s with Vivienne Westwood editing, a permanent record in website, ebooks, pdfs and newspapers form, I think in the world of shutting down we did pretty well.

You should totally try it sometime.

Footnote: About Contributoria

For those that don’t know what Contributoria was: very briefly it was a platform built for readers who want to support good journalism, and writers who want to be paid to write about subjects people want written about. It was often described as a cross between Medium and Kickstarter. The clean advert free reading experience with users backing stories they want to hear with cold hard cash paid to the writers. Although there was more to it than that obviously.

It was funded by the Guardian, as part of their ongoing explorations into alternative journalism models, with extra support and funding from (transparent) sponsorship.

To respond to the inevitable “Well, I guess it didn’t work if you’re shutting down” I’d say that running Contributoria has taught us that there’s a hugely fertile area out there, supported I guess somewhat by this footnote in Medium’s blogpost from the other day…

“We’re also starting to work on monetization features for authors and publishers. This is a green field project, and we’re approaching the problem space with open minds. We think the future needs new mechanisms for funding content, and we want to make sure our features incentivize quality content and value to the network.

…my experience leads me to agree, there’s plenty of space in this area to pay writers without advertising. It was just the right time to close things down for various reasons.

I hope this doesn’t get us on Our Incredible Journey.

*The site, not the writers.