/0xWriter

A decentralized blogging app that facilitates writers to write user-centric blog posts and create token-gated access to their content 📝

Primary LanguageJavaScript

Launch App 🔏 Watch Demo


A decentralized blogging app that facilitates writers to write user centric blog posts and to create token gated access to their content.

This project was submitted at Encode x Polygon Hackathon 2022

0xWriter main contract is deployed and verified on polygon mumbai testnet.

Features

  • Write blog posts that are owned only by you.
  • Create, read, update and delete posts.
  • Deploy an ERC20 contract to create token gated access to your blog.
  • All posts are encrypted.
  • Set access control condition - minimum no. of your ERC20 tokens a reader must own to decrypt your content. Setting more conditions will be supported in the future.
  • Writer - can mint their ERC20 tokens, transfer them, set new token price and withdraw their contract balance.
  • Reader - can mint new writer's tokens and transfer them.
  • Set or update your decentralized identity's basic profile - name, description and emoji.

Demo

Youtube

Installation

Clone this project to test locally

  git clone https://github.com/devpavan04/0xWriter.git
  cd 0xWriter
  npm install

Also install client and middleware dependencies

  cd middleware
  npm install
  cd ..
  cd client
  npm install
  cd ..

Environment Variables

Add the following in the .env file inside middleware folder :

USER_GROUP_KEY

USER_GROUP_SECRET

You can get the above keys by going through Textile Docs

Add the following in the .env file inside client folder :

REACT_APP_INFURA_API_KEY

REACT_APP_SERVER_URL - http://localhost:3001

REACT_APP_CERAMIC_URL - http://localhost:7007

Run Locally

Start ceramic daemon

  npm install -g @ceramicnetwork/cli
  ceramic daemon

Run middleware

  cd middleware
  npm start

Start client

  cd client
  npm start

Go to http://localhost:3000 on your browser to interact with the dapp.

Technologies used

Read more on how the above technologies are used in the app here

Built With

Author

@pavansoratur