Inspiration
Social media has become an integral part of our lives. However, social media platforms controlled by the tech giants are plagued with many serious issues, ranging from censorship to damaging teens' self-esteem. The rise of Web3.0 technologies opens the door for creative solutions to those issues.
What it does
My Status is a social media platform built on the Internet Computer blockchain with a native iOS frontend. Users share daily events of their lives with friends in the form of "statuses". A Status is a photo, short video, audio, or text that expresses what you're up to in the current moment. A Status is captured at the moment, it cannot be uploaded or prerecorded. The goal is to portray the moment as is. Friendship is a bidirectional relationship. There are two levels of friendship:
- Circle: Close friends. To establish a Circle friendship you send an add request. The recipient can accept or deny the request.
- Network: Outer circle of friends, colleagues, and other acquaintances. A Network friendship is established when you add a friend.
This classification helps you decide what to post for each group. All statuses that you post are grouped by day in your Journals. You can also post private statuses that are seen by you only.
Phone Call Requests: The app allows users send phone call requests to their Circle friends. The purpose of this is to minimize the disturbance and the occasional inconvenience of phone calls. A user can send a request to be called within a window of time. The receiving user can deny or accept the request.
Places and Experiences: A user can attach an experience to a status. An experience is the user impression about a physical place of business expressed in a binary rating system. This could be a coffee shop, restaurant, etc. The experience, therefore, consists of the status posted by the user taken at the place and the user’s rating of the place (like or dislike).
A place will have a total rating that is the accumulation of users ratings. When viewing a place page, a user can view the total rating of that businesses as well as the statuses posted in that pace, as long as those statuses belong to the user’s friends and have not expired yet.
A place can be created by any user. A verified place can be created only by the business owner. (How to verify places is to be addressed in the future). There could be multiple places that have the same location. Eventually, only the verified or popular places will attract ratings.
When a user wants to add an experience to a location (determined by the current GPS coordinate), the user is presented with all places in that location, if any. The user will also have the option of adding a new place. The user can choose whether that place can visible by friends or by everyone. The app is therefore building a new database of places that is independent of the big tech databases.
This is a natural way to promote businesses. Uses express their experiences genuinely to their friends. Businesses who provide good experiences to customers will benefit from the word of mouth.
How we built it
The backend is built on the Internet Computer smart contracts (canisters) using Motoko language. The front end is a native iOS app built with swift language. An interface bridge connecting the backend with the frontend is built with rust language.
Challenges we ran into
Besides understanding how build a smart contract on the Internet Computer, The first major challenge was communicating with the Internet Computer canisters from the iOS app. I've had to build an interface to communicate with the low level rust IC library using rust, a language I was not familiar with. Further challenges I faced had to do with scalability and inter canister communications.
What's next for My Status
My Status is a social media platform where friends interact and keep in touch with each other. This opens the door for adding services that can benefit from the network effect and the features of the Internet Computer blockchain . For example, the app can connect to a DeFi protocol to make it possible for friends in the network to do financial transactions, such as sending money, borrowing, etc.
The app can leverage the idea of adding places and experiences to allow businesses to create specialized accounts. A business account can interact directly with its customers to take feedback, offer discounts, provide loyalty cards, etc. When tokenization is implemented, users can make payments to businesses directly using the app.
The current domains will be expanded to include a World domain. This allows users to post publicly. A public domain will create an opportunity for users to monetize their contents. For example users can write high quality articles, just like Medium or Substack, but with being able to totally control how they want to charge their readers.
The app will have a native Android mobile app, as well as a website that is completely on chain. The website version will obviously be limited to certain features.
Log in or sign up for Devpost to join the conversation.