Inspiration
Imagine a world where knowledge and information are truly free, where every voice has the opportunity to be heard and every idea has the chance to flourish. This is the vision of a decentralized publishing platform, a place where writers and thinkers can come together to create, collaborate, and share their work without the constraints of traditional publishing models.
What it does
Publichain is a decentralized publishing platform that empowers writers, journalists, and creators to express themselves freely without any censorship. Unlike traditional publishing models, Publichain does not have any editors to monitor the content and restrict the flow of information. Instead, writers have complete control over their work, and they can publish it directly on the platform without any intermediaries. This freedom of speech ensures that ideas and opinions can be shared without any fear of censorship or suppression.
Furthermore, Publichain offers an innovative way for writers to monetize their articles. By using Non-Fungible Tokens (NFTs), writers can create unique digital assets that represent their articles. These NFTs can be sold or traded on the platform, allowing writers to earn revenue directly from their work. The process of creating and selling an NFT is incredibly easy and straightforward, making it accessible for all writers to monetize their content.
How we built it
Languages TypeScript
Frameworks, libraries React.js, Node.js, Editor.js
Authentication The authentication was implemented using Xumm SDK.
Publication Whenever an article is written, author may press a "Publish" button and:
- Data of the article will be stored in IPFS
- A new NFT is minted with IPFS URI
- When user signs NFTokenMint transaction a new fungible token will be created and assigned a value of 200, representing the number of collections for that NFT
Collect When a user wants to collect an article he just needs to press a "Collect" button and sign the transaction that will grant him with 1 instance of fungible token for the particular article.
Challenges we ran into
During the development of the system we ran into a lot of inconveniences and crucial handicaps. The original implementation for publishing and collecting was to create a number of NFTs (number represents the amount of collectables for an article) on publishing, but in XRPL the cost for such minting grows with increase of the number of collections, so that authors would have to pay a lot of money just to publish their content in our network. That is why we decided to implement fNFT solution instead.
Morover, during the deployment of the frontend application we ran into a lot of problems with Vite that was used to assembly the app. So, we had to rewrite the configuration of the app on CRA, that is why the second repository (publichain-cra-client) consists only of 5 commits.
Accomplishments that we're proud of
We are proud that we managed to integrate and expand the features of the most convenient and easy-to-use editor - Editor.js. We managed to add functionality that allows users to attach NFTs to their articles (unfortunately, for now it works only for NFTs stored in Ethereum chain, and for some in Polygon and Goerli, because we could not find a suitable API to get the data of all NFTs in XRPL).
Also, we managed to implement article editing, storing different versions using IPNS!
What we learned
During the analysis and development of the project we learned a lot about Web3 technology and XRPL in particular. We managed to implement complex technical challenges and created a brilliant platform for publishing articles.
What's next for Publichain
There are a lot of ideas of improvement Publichain, from changing publishing/collection mechanism to implementing some small features to enhance user experience.
Built With
- editor.js
- ipfs
- ipns
- node.js
- react
- typescript
- xumm-sdk
Log in or sign up for Devpost to join the conversation.