Inspiration

Initially, we started working on a platform to enable faster monetization for the creators. However, we realised that the problem is significantly bigger when we consider the entire social media ecosystem. More than 98% of users in the ecosystem are unable to monetize their time and effort on social media.

One of the major challenges while building GoBazzinga was content moderation. How do we filter explicit content on the platform to maintain the sanctity of content on the platform? Hence, as a part of the Supernova Hackathon, we decided to build a user-driven prediction market for decentralised content moderation. We also realised that this type of content moderation system can be utilised for any kind of user-generated content and hence we decided to create an open-source solution which can benefit the community as well.

What it does

GoBazzinga is a short-video social media platform on blockchain, which not only provides the fun and excitement of social media but also enables the users to earn rewards for creating content, engaging with it or sharing it with their friends and family (Think TikTok on Internet Computer!)

The content moderation system filters flagged content based on the votes by the users. This gives the control to the community and creates a decentralised content moderation platform. There are 2 layers of moderation - an AI-based layer which scans the video and text content for explicit content and a user-driven reporting mechanism for reporting explicit content on the platform.

If a video is flagged by the first layer, it is not uploaded on the platform till it is corrected by the creator. If the video is reported by users, it is then moved to a moderation feed for approval/rejection of the content by the users. The users then vote for approval/rejection while staking their tokens for the same. Please note that the staking of tokens has no bearing on the votes. Every vote is counted as a single vote irrespective of the number of tokens staked by the respective user.

Once the voting window (usually 24 hours) expires, the video is then approved/rejected based on the number of votes. If the video is approved, it is put back in the home feed, else it is removed from the platform. The staked tokens by the losing side are distributed amongst the voters on the winning side proportionally according to the number of tokens staked by each voter on the winning side.

How we built it

  • Frontend is built using Svelte and TailwindCSS and bundled as a static website. It is hosted on the IC in an asset canister
  • All video related metadata and token information including voting stats and outcomes are stored and computed on the IC backend
  • Videos are stored using Google Cloud Storage buckets
  • AI preprocessing is done using Google Cloud Video Intelligence and Text Sentiment API
  • Moderation outcomes are computed using IC heartbeat functions
  • Google Cloud APIs are invoked and results saved using Firebase functions

Challenges we ran into

  • Motoko is relatively immature. Managing a large codebase is challenging without a fast language server
  • Video storage on the IC is not feasible without low cost block storage as proposed with the Storage Subnet proposal
  • Absence of real time capabilities such as Websockets means we need to rely on client polling for updates. Would have been a superior user experience to show voting changes in real time

Accomplishments that we're proud of

  • Token staking on content moderation without impacting the vote provides a truly decentralised experience - This allows the user to showcase their commitment and put their weight behind their vote without impacting the integrity of the vote
  • Onboarded a new engineering member to the team and got them up to speed to productively contribute to the project (including being able to code Motoko canisters) in a span of a month

What we learned

  • Building a generic solution that can be open sourced for use by a wider audience as well as adopted into our current product
  • Making judgement calls on where to prioritise “getting it done” vs “doing it right”

What's next for GoBazzinga

The content moderation would now be incorporated in the GoBazzinga platform to enable moderation of the various videos being uploaded on the platform by the users. Further, the platform would be open-sourced and made available for other projects in the community to customise and deploy as per their specific requirements.

For GoBazzinga, having launched the first version of DApp and on-boarded initial users, the focus over the next 5-6 months is to consolidate and improve the platform. This would entail overhauling and enhancing both the front-end and back-end of the application. While improving the front-end would enhance the user experience, the overhauling of the backend is necessary for enhancing the scalability of the platform. In addition, content moderation and personalised recommendation feeds would also be incorporated in the platform

Built With

  • firebase-cloud-functions
  • firebase-cloud-storage
  • google-cloud-natural-language-api
  • google-cloud-video-intelligence-api
  • internet-computer
  • internet-identity
  • svelte
  • sveltekit
  • tailwindcss
+ 43 more
Share this project:

Updates