A decentralised application hosted on the Internet Computer Blockchain (ICP)
you can visit the dapp here: Kontribute.app. Kontribute allows readers, writers and web 3 enthusiasts, to create and enjoy community created content, read or write stories and create or sell NFTs along with other features.
Kontribute is built on top of the ICP blockchain - meaning the frontend and backend are both hosted on the blockchain. We use a variety of tools, web2 and web3 alike. The codebase has been opensourced to hopefully be used for educational purposes for any other developers building dapps on the ICP blockchain. This project was kickstarted with the dfx new
command.
We try to take a modern approach to the frontend in terms of using modern React practices such as functional components and hooks aswell as implementing the most popular React state management library: Redux. The idea is to make as many readable dynamic components as possible taking a "less is more" approach. We are adament that the dapp works and looks nice across all device screens so we use Chakra UI for most of the UI design and CSS, This allows custom and fast development of the UI aswell as responsive components.
Our backend is a mix between in house smart contracts written in Motoko aswell as using frontend api's to call external smart contracts on the ICP blockchain. We call features and tools from other Motoko packages using Vessel - a Motoko package manager. A large chunk of our Motoko backend is calling the Anvil Protocols smart contracts - covering our whole NFT integration. We also have custom smart contracts for managing and storing user stories. All of this makes Kontribute a multi-canister dapp.
The ICP blockchain allows us to create "canisters" which can serve your applications code (a canister is just a smart contract which in turn is just code on a blockchain), We use canisters to host both our frontend and backend. Our dapps authentication uses Internet Identity which is currently an ICP specific authentication system, it is secure and powered by cryptography and allows users to create anonymous user IDs and wallets. We have integrated the Anvil Protocol which allows us to achieve NFT integration aswell as providing us with a variety of tools, including vessel
and npm
packages. Our marketplace, inventory and ICP wallet are all powered by the Anvil Protocol. We use UserGeek for analytics which allows us to obtain stats on unique users who use our dapp aswell as things like how many users purchased NFTs, All information is anonymous.
- Canisters launched on the ICP blockchain
- ICP wallet
- NFT Inventory
- NFT Launchpad
- NFT Marketplace
- User Stories
- create stories via text editor
- view your own stories
- Read other user stories
- Sell NFTs from your story
- Delete stories (admin and users)
- Story likes
- Story vote options