This is an unlisted page used to post updates about the development of the Fans Platform. You can signed up and play around with a constantly improving live app at https://fans.calenda.rs
Overview
This gives an overview of the platform’s design and architecture.
Data Architecture
People: can maintain profiles with a username and icon, can link to their other socials
Interests: people indicate their interests, to receive notifications when relevant new content is published
Channels: anyone can start their own channel and invite followers, hosts and guests
Episodes: videos recorded on a channel can be imported from multiple sources
Clips: audience members can clip episodes and re-share clips to various social networks
Invites: people can invite others, and the system tracks who invited whom
Tech Stack
The uncensorable front end is built to run in mainstream web browsers, such as Chrome, Safari and Firefox:
Pages rendered from templates in HTML, CSS and Javascript
Tools are reusable components that can appear on pages
Players are video players that work with YouTube, Vimeo, internal video streaming, etc.
Embeds are widgets, such as a player, that can be placed on other websites
Teleconferences are live audio+visual conversations powered by open WebRTC protocol
The back end is built to run on a very mainstream stack, so it can be hosted anywhere, and moved to a different server if need be:
App Server is written in PHP and can work with web servers like NGinX, Apache, etc.
Database is MySQL allowing data portability, and optimized to handle millions of users
Streams use Node.js and web sockets
Subscriptions let people subscribe to topics and interests
Notifications are delivered by Node.js to endpoints like email, SMS, devices, and Telegram
Telegram integration with Telegram platform, including chats and bots
X integration with the X platform, for posting, upvoting and re-sharing clips together
We’ve repurposed our videoconferencing technology and expanded its livestreaming capabilities. Here is what has been achieved in this milestone:
Peer-to-Peer Live Broadcasts
Livestreaming done with P2P livestreaming (no central server) using WebRTC with STUN/TURN fallback. Multiple guests can join and watch, and it feels like Twitter Spaces with video.
Stage & Permissions
Hosts/moderators of a stream can elevate others to the “stage”, with queueing and moderation tools. This feels like Speakers on Twitter Spaces. Can be used to bring guest streamers and cohosts.
Waiting Room & Guest Management
Guests enter a waiting room until accepted on stage. Hosts see profile previews and accept/reject requests. This is for people calling in, or interacting with the streamer in real-time. Supports screeners to speak with the caller before approving them on stage.
Intro/Outro Scenes
Basic branding support: automatic intro/outro animations or static screens when streams begin or end. The streamers can now update the assets on their channel.
Buy Crypto and Deposit with the Platform
Users purchase platform credits with either crypto (e.g., USDC, ETH) or credit cards (if the user chooses to add a Stripe API key). In Web3, the money deposited can go into a specific address on the blockchain. This address can be an IncomeContract smart contracts, which can then be used to pay out to others on-chain at specific rates, overseen by managers. In Web2, it would be more opaque and use the Stripe Payouts API.
Recurring Weekly Subscription Model
Give permission to withdraw crypto from your wallet balance. Content creators should be able to set the recurring plans. All this is done with our turnkey solution involving recurring subscription smart contracts on EVM blockchains. On the web servers, a periodic cron job can run and call smart contract methods on those blockchains (e.g. once a day) in order to transfer subscription payments on-chain. Customers can top-up their balance as they see fit, but their subscription lapses, their access to videos on the website is paused.
Pay to Watch (Live + Recordings)
Streams and recordings can now be gated, requiring a small payment to unlock access. This is done off-chain, with site credits, and works to stream from the server. However, the actual hosting still needs to be more decentralized. This is what we’re working on now.
Seamless UX
The payment experience is smooth, on-platform, and consistent across devices. It also integrates with peer-to-peer livestreams, as well. Take a look: