Decentralise Your Blog: A Guide to Censorship-Resistant Blogging

By fromcoins | fromcoins | 22 Feb 2024

Decentralise Your Blog: A Guide to Censorship-Resistant Blogging

This is a comprehensive summary from the workshop held by the Swarm network at


As a fundamental aspect of the open and decentralized nature of the internet; Permissionless publishing gives an individual or entities the ability to publish content on the internet without requiring approval or permission from a central authority. This is conjunction with Censorship-resistant blogging which is the practice of publishing content on the internet such that it becomes very difficult or impossible for governments, corporations, or other entities to censor or suppress it.

These two concept is often associated with decentralized technologies such as blockchain and peer-to-peer networks which puts power of data publishing back into the hands of the individual publisher.

Swarm is a decentralized storage and content distribution platform that leverages peer-to-peer technology; and hosting websites, apps, and data on it offers several benefits, including:

  1. Decentralization: By hosting content on Swarm, you contribute to a network where data is distributed across multiple nodes, reducing reliance on centralized servers and mitigating the risk of censorship or single points of failure.

  2. Censorship Resistance: Content hosted on Swarm is resistant to censorship since there is no central authority controlling access to the network. This makes it ideal for hosting content that may be subject to censorship in certain jurisdictions or by certain entities.

  3. Data Integrity and Security: Swarm employs cryptographic techniques to ensure the integrity and security of hosted data. Content is encrypted and distributed across the network, making it resistant to tampering and unauthorized access.

  4. Scalability: Swarm is designed to scale with demand, allowing it to accommodate large amounts of data and handle increasing traffic over time. This scalability is achieved through the use of incentivization mechanisms that encourage nodes to store and serve content efficiently.

  5. Cost-Effectiveness: Hosting content on Swarm can be cost-effective compared to traditional hosting solutions. Since Swarm leverages unused storage space on participating nodes, the costs of storage and bandwidth are distributed among network participants, potentially reducing hosting expenses.

  6. Redundancy and Reliability: Content hosted on Swarm benefits from redundancy and reliability inherent in distributed storage systems. Data is replicated across multiple nodes, ensuring that it remains accessible even if some nodes go offline or experience failures.

  7. Interoperability: Swarm is designed to be interoperable with other decentralized technologies and protocols, allowing seamless integration with blockchain networks, decentralized applications (dApps), and other distributed systems.

  8. Community Governance: Swarm is governed by its community of participants, ensuring that decisions regarding network protocol upgrades, incentives, and governance are made in a transparent and inclusive manner.

In 4 simple practical steps, the workshop show cased how to get your website (Blog) hosted on the Swarm network; and also how using a few lines of copy and pasted javascript code to add a powerful Comment engine to a Blog that enables a decentralized communication channel between readers and blogger that can’t be censored (deleted) as well a Donation widget which enables a Blogger to receive donations in form of Cryptocurrency (ERC20 token, eg xBZZ) from readers who find the post worthy of financial support.

The steps area as follows:

  1. Installing Swarm Desktop and purchasing postage stamps:

    The Swarm Desktop app was downloaded from and then installed. The installation process downloaded the Bee binary (node) which took few minutes (pending on the bandwidth speed) which then initialises the app start up on http://localhost:3054/dashboard/.

    Like any other dApp; uploading data/website/blog/images/videos that need persistence on the Swarm network need some form of payment to the Node operators/providers (these are individuals who make their hardware storage (computers) available to Swarm network to use for storing users uploaded data and in return do get some form on renumeration.

    That being said; the xBZZ token is the native token used to payment for any form of transaction (eg uploading) on the Swarm network. Funding the Bee Node wallet could be done either with Bank card, Gift Card or xDAI token. The video showed using xDAI token (Gnosis Chain) which was deposited from the author's personal web3 wallet (Metamask). When the fund was confirmed in the Bee Node wallet; some amount was then swapped for xBZZ from within the Swarm Desktop App (using its inbuilt decenterallized exchange).

    Now that the wallet has some xBZZ, still within the Swarm Desktop, a batch of Postage Stamp (which is a form of upload allowance that is paid to the node operator to guarantee user’s uploaded data is persisted on the network) was purchased with the xBZZ token. The Postage stamp purchased in the video covered the size of storage and the duration (Time to live - TTL) of the hosting.

  2. Using `Etherjot` to publish on Swarm network

    Etherjot is a blogging application that was used as a demo for creating and publishing a blog on the Swarm network.

    The Etherjot app was accessed from the Swarm Desktop’s system tray. As it launched; the welcome interface checked to confirm that:

    i. A ‘Local Bee node’ was up and running,
    ii. An amount of ‘Postage stamp’ for payment was available
    iii. Lastly; noting responsibility of the Blogger to ensure the postage stamp TTL doesn’t run out so as to avoid losing the entire blog.

    After selecting the Check box to accept the terms, a name was entered to create the blog. The main page of Etherjot is a very simple to use interface divided into 4 layout.

    i. Top bar: This displays a ‘Settings’ button and a Swarm feed hash address of the blog which when clicked on will upon the blog post in a new browser tab for previewing.

    ii. Left side bar: This displays the list of post (if any), buttons for creating post and uploading media assets.

    iii. Right side bar: This display optional properties that can be set for a new post or updated for an existing post.

    iv. Main editor: This has a left part where the content of the blog post is fleshed out using Markdown and a formatting options from the formatting tools bar. And a right part showing a preview of content.

    The author of the video created and published few articles by entering text content mixed up markdown tag; and observing the preview before hitting the publish button on the ‘Left side bar’ to publish straight on the Swarm network.

    Uploading media files was as simple as `clicking the Asset Browser` which opened a new modal box where new image file was chosen and uploaded from disk or already uploaded images was selected from. 

    From there, the author ‘edited’ a published article and updated it Banner image with the image uploaded earlier.

    Clicking on the ‘Settings’ button showed various customization options for the entire blog comprising Backup / Restore, ‘Header’, ‘Footer’, ‘Social Links’, and Extensions.

  3. Importing existing blogs onto the Swarm network

    Etherjot is seamlessly interoperable with other blog engines as showed in the video; and as stated by the author, the currently supported engines are Hugo and Jekyll.

    While I was expecting such import to be directly done from within Etherjot; that didn’t happen as the author made a case that such importing comes with a caveat due to browser restrictions.

    The author further demonstrated how to import a Hugo engine blog via the Command  Line Interface CLI’. For the little technicalities; I would suggest you see the directive from the video. 

  4. Working with web components such as a Comment System  and a Donation Widget

    While the web components which enable powerful features on the blog was activated from within the settings page of Etherjot, the author stated that any arbitrary web page on the internet can use it out of the box without any connections with Etherjot.

    The author went further to create a dummy article and then enabled both the Comment and Donation component; and while at it he added his personal Ethereum address (to receive the donations) on the input field before saving the settings.

    On viewing that article; one could see the Donation component display two buttons which enables fans/readers to ‘Top up’ - (a more Swarm centric) of the author’s postage stamp to prolong the TTL of the blog hosting and ‘Donate’ to send small tips in any Ethereum ERC20 token.

    The Comment component displayed the functionality where readers share their opinions on an article; it has no backend; fully decentralised, using nothing more than Swarm feeds that enables dynamic content that requires no servers and is unstoppable. As with any open Comment systems that is prune to spam; the Comment component empowers the blogger to cherish pick the none spammy comment to a selected tab shown by default while the rest remains in the ‘All’ tab (still viewable by all reader and not able to be deleted).

The last part of the video; the author demonstrated integrating the Donation and Comments components into an arbitrary html page that has nothing to do with the Etherjot App. By just adding few lines of code (script tag) to the body of the html page and previewing the page the browser; one could see the same components displayed seamlessly working and powered by the Swarm network.


To wrap up; this post summarised the workspace as held by the Swarm network team at show casing the possibilities of the Swarm network. The project is open source and thus everyone is welcome to contribute to it.

Want to learn more about the Swarm Network, visit the docs at
Thinking to start your own decentralised Blog, visit

How do you rate this article?



Just passing by...


All about web2 and web3 technology

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.