Publishing on Civil: A Journalist-Friendly Explanation of How it Works

Robert Okrzesik
Civil
Published in
8 min readSep 21, 2018

Here at Civil, our mission from day one has been to create a platform to support sustainable journalism, with the help of blockchain technology. A lot has been written to date about Civil that’s been intended for a more technical audience interested in inner workings of our product. However, in this post, I’d like to focus on addressing the journalists — both reporters and editors — to help explain to you some of the goals of Civil’s Newsroom Manager plugin, which is the tool that allows newsrooms to interface with Civil and its suite of publishing tools.

Note that while we are here to help you understand, it’s always our intention that journalists make the final call on how to use our tools, since it is your content.

To set some context, the Civil network is an ecosystem of journalists, developers, readers and publishers bound together by Civil’s protocol and Constitution. This protocol includes new publishing tools that allow newsrooms to index and archive their content in a permanent and censorship-resistant way.

Now we’ll start to get a little bit technical — the Civil Newsroom Manager plugin is a tool for WordPress that lets you download Civil’s plugin to your WordPress CMS and create something called a newsroom smart contract. The newsroom smart contract is required if you want to apply to the Civil Registry and have your content shown to readers in the Civil network. The contract will also enable any editors you choose within your newsroom to index and archive posts onto the Ethereum blockchain as well as post to a peer-to-peer, decentralized storage network called IPFS. We plan to use Infura’s IPFS service to pin (or preserve) this content to maintain a layer of redundancy. In both cases, Ethereum and IPFS, there’s no single point of failure; meaning, no single entity (or bloc) can remove published content simply because they don’t like it. Journalists can (and will) update content to reflect changing circumstances, but that right will be theirs alone.

We plan to release Civil Newsroom Manager plugin in beta to the first group of newsrooms publishing on Civil later this month, and plan to share documentation with other journalists interested in the Civil platform about how to install our plugin onto your WordPress — or build your own version for your non-WordPress-based CMS — by next month.

When building out the designs for this plugin, we focused on making it as clear and cohesive as possible, specifically for users with no blockchain experience.

We relied on the following set of design principles:

  • To ensure journalists know when they are interacting with the Civil Newsroom Manager plugin and fully understand the results of their actions at all times. This included attempting to find non-jargony ways to describe cutting-edge blockchain technologies that are still far from being adopted, or even understood, by the majority of users.
  • To keep explanations and steps as streamlined as possible to recognize that journalists are moving quickly and under constant deadline, and that while they need this information close at hand at all times, they also need the ability to do their work without being unnecessarily blocked.
  • To instill confidence in journalists that they can use new and challenging processes without becoming overwhelmed or intimidated.

Below you will find descriptions and images of some of the user flows, which show how a newsroom can set up a smart contract and sign and publish an article. These are works in progress; if you have feedback, please reach out to our team at developers@civil.co.

Setting up your newsroom smart contract

The Civil Newsroom Manager plugin is a newsroom’s connection to the blockchain. As described above, it’s a plugin that you can upload to your existing WordPress CMS. First-time users who upload the plugin will see it as a “Civil” button in the upper right of their post editor nav bar (next to where the “Save” and “Publish” buttons appear.)

The plugin allows your newsroom to create and maintain a decentralized index of content by deploying a smart contract to the Ethereum blockchain. This smart contract has a unique address, which identifies your newsroom as the original source of all of your content.

A newsroom will need the following information to set up the Civil Newsroom Manager plugin:

  • A name for your newsroom,
  • A browser enabled cryptocurrency wallet, (such as MetaMask)
  • Funds in the wallet — specifically in the form of the cryptocurrency Ether (ETH) — to pay for transactions on the blockchain,
  • The public wallet addresses for any editor you want to have permission to put content onto the blockchain.

One of the biggest design challenges that we encountered was how to communicate clearly while having to bring together at least three separate user experiences within each transaction: MetaMask, which is a cryptocurrency wallet used to send transactions to the blockchain; WordPress, which is the base layer of the CMS that journalists use to write and publish their stories; and the Ethereum blockchain itself, which the Civil Newsroom Manager plugin uses to store either an index of the newsroom’s published story or the full text of the entire story.

The solution, we decided, was to break out the process into steps (also known as progressive disclosure), which explains the steps a journalist would need to do in real-time as they do it.

An abbreviated overview of this process is depicted below:

Here’s a GIF of creating a newsroom smart contract.

(In a future post, we’ll describe how to take the next step — applying to the Civil TCR — which requires newsrooms to submit your charter describing your newsroom’s mission, purpose and intentions, as well as your roster of editors and reporters.)

Once all of these steps have been completed, journalists who click on the “Civil” button on the upper right of their nav bar in the WordPress post editor will see a panel open up on the right of their body text of their story that gives them several new publishing options: signing their posts, indexing their story to the blockchain and archiving their full text to the blockchain.

Signing

The Civil Newsroom Manager plugin panel includes options to Sign and Publish a post. Signing a post adds a “digital signature,” or a cryptographic hash, to the post using a unique fingerprint of the post and the signer’s private key — along with the lines of your publishing timestamp, dateline and byline all in one.

This signature is then connected to your newsroom’s wallet address. By signing a post, you are telling the world, or at least the blockchain, that you are the post’s author or editor and are fully aware of its content and where you are publishing it. The reason we recommend signing posts for enhanced credibility is that, like your byline, the more posts are connected to your signature on the blockchain, the more credibility you build up as a producer of quality journalism. Note that unlike your byline, signatures on the blockchain are pseudonymous until you connect them to your name, which has the added benefit of helping journalists in hostile coverage areas preserve the right to publish without putting themselves into additional danger.

However, since a signature captures the exact state of the post at the moment it was signed, if you edit and re-publish a story to your WordPress site, the signature on the copy you published to the blockchain will now be outdated, so we recommend that you re-sign and re-publish your stories to the blockchain after significant edits, much like you might if you were to append a correction or editor’s note.

The design challenges that we encountered in this section were:

  • How to communicate what a signature is and how it works,
  • How to communicate the state the story it is in (not yet signed, signed but not published, signed and published but out of date, signed by one individual with a byline but not others with bylines)
  • How to take users from the Civil Newsroom Manager plugin panel to MetaMask in order to sign a post.

Below is an abbreviated overview of the process of adding a signature to a post:

Check out how you use MetaMask to sign in the plugin.

Publishing

To publish a post on Civil, an editor will have two options: to create an index of the post without including the full text of the story, or to create an index that also includes the full text of the story, which we call the archive. Both of these options cost money, in the form of “gas” — which is the transaction fee to the miners who create and verify the blocks on the blockchain paid in Ether (ETH), the cryptocurrency associated with the Ethereum blockchain.

Index

Indexing takes any post that you have already published on your newsroom’s WordPress site, extracts its metadata and creates a hash, and then publishes the metadata to IPFS and the hash and metadata url to your newsroom’s smart contract on the Ethereum blockchain.

This metadata does not include the actual text of the article itself, but is intended to be a record of things associated with the post and the URL of the original story. Think of it like the old way of finding a book in the library using the Dewey Decimal System — you use the index to classify, locate and label the post, but the index (or library card) doesn’t actually contain the book you want to read.

Archive

In addition to indexing your post using the Civil Newsroom Manager plugin, you can also archive it. Archiving a post will save its full text to IPFS and/or the Ethereum blockchain (read more about how that happens technically here.) All archives will also generate an index.

Archiving creates a permanent record of the post, which is nearly impossible to be removed. This permanent storage mechanism keeps a record of all the posts that a newsroom feels is in their interest to permanently save. Archiving can be done at the time of publishing, or at a later date.

Note that archiving also makes the post’s full-text public, which makes it available outside of a newsroom’s website. Ethereum and IPFS are public platforms, so any posts published to them will no longer be protected by paywalls.

The design challenges with publishing that we encountered were:

  • Making clear what was happening to your post and content
  • Explaining the difference between IPFS and the Ethereum blockchain
  • Explaining the process of using MetaMask to pay for publishing transaction fees

Below is the process of publishing a post to the Civil network:

Here’s how you publish your story to the Civil network.

In Summary

In creating the Civil Newsroom Manager plugin, we attempted above all to introduce radical new processes while simultaneously respecting existing journalism workflows. Our goal has been to try to prevent adding any friction to what journalists are already doing, but also use UI to introduce you to the benefits of blockchain technology — not only for a new business model but also for the option to permanently preserve a record of your work.

The day-to-day of journalism is hard enough, and we want to create simple — but not shallow — solutions. If we can help journalists understand what this plugin is, where it goes, and what it does, we’ve gone a long way towards reaching our goal.

If you have feedback, please reach out to our team at developers@civil.co.

This project isn’t currently on Civil’s Github, but it will be later next month. In the meantime, check out what else we’re building at Civil.

Thanks to Megan Libby, Nicole Bode, Walker Flynn, Toby Fox, and the rest of the Civil teammates for their help to make this happen.

--

--