Communiti: a place for creators. Bridge the gap between creators & followers. Directly follow, donate, & connect with your favorite creator, all in one place.
This project builds upon the whole concept of having a way for creators to build a "community" for facilitating wholesome fan interactions, either through fan-engaging posts or any kind of textual or video updates as well. Creators can curate their community which can be followed by a set of subscribers. Subscribers can also subscribe to their favorite creators as well. The best thing about our project is it omits the middlemen and lets you directly contact, donate and communicate with your favorite content creators unlike the existing platforms which redirects you to other services. Creators can authenticate themselves using WorldID instead of a third party KYC authentication! Users can even mint NFTs on Zora to personalize their profile pictures. An analytics window to know the user and creator statistics better to make informed decisions.
The general tech stack is Next.js, RainbowKit and wagmi for wallet connections, Auth0 for WorldID, contracts written in Solidity.
Contracts are compiled and deployed on multi-chains using Hardhat and custom shell script.
Multi-chain deployment, main contract is deployed on Optimism. The sub-contracts are deployed on Mode, Base, Gnosis and Polygon Mumbai. The main-contract acts as a forward-pointer table storing mappings for users to their respective contracts.
Inter-contract communication is achieved via Hyperlane's interfaces
IPFS and Filecoin contracts on FVM are used to used to persist user data like created NFT collections.
Zora, specifically is used to create NFTs, that users can mint in-order to personalise profile pictures
Worldcoin auth is achieved via Auth0 and using a simulator for the app itself.
This project has an analytics window which shows up the creator and subscriber's analytics like trend and seasonal analysis, pair-plotting, sales prices analysis, salves value vs volume comparison, lag analysis, distributions and rolling averages. This is done using jupyter notebook and flask server serving up the HTML output in the app.