NewMatrytech AI Studio is live — build production-grade AI agents in weeks, not quarters.
Social

MyPerico — Full-Stack Social Platform with Paid Live Streaming and In-App Ad Manager

15 March 2025·5 min read
Social · Case Study

The Brief

Victor Acosta, the founder of MyPerico, wanted to build a social platform that combined the best of Instagram (image/video feed, stories), TikTok (challenge reels), Twitch (live streaming), and WhatsApp (direct messaging) — with one differentiator that none of those platforms offer: monetised live streaming for creators without a follower threshold.

On MyPerico, any user can go live and charge viewers an entry fee to participate in the stream. The creator sets the price; Stripe handles the payment; the platform takes a small commission. This gives emerging creators a revenue model from day one, not after reaching 10,000 followers.

What We Built

Social Feed

A home timeline with photos and video posts from friends and public accounts. Posts support likes, comments, nested replies, user tagging, saves, and shares. A horizontal stories row shows 24-hour stories from connections. The Discover tab shows a grid-view feed of public posts.

Video & Image Posting

Videos support SD/HD/FHD quality selection and rotate to full-screen landscape mode. Viewers can continue liking and commenting in portrait mode; landscape locks to distraction-free playback. Image posts support up to 10 photos with location tagging and carousel navigation.

Challenge Reels

60-second video challenges where users compete head-to-head. Votes are cast by liking a competitor's entry. Time remaining is displayed on each active challenge. Any user can create a new challenge by uploading a response video or recording directly in-app.

Live Streaming — Free & Paid Entry

The platform's flagship feature. Streamers choose between two modes:

Free Live Stream: Open to all followers. Viewers can send live reactions and comments. The streamer can invite up to 16 viewers to join as co-participants (max 17 users total: 1 streamer + 16 co-hosts).

Paid Live Stream: The streamer sets an entry fee. Viewers pay via Stripe to join. Up to 16 paid participants can join the stream at any time; once full, new viewers are waitlisted and notified when a slot opens via push notification.

Streamers can accept/reject join requests, mute participants, switch between front/rear camera, and kick participants. The streamer dashboard shows total viewers, live duration, and join-request queue in real time.

Direct Messaging

Full-featured chat: text messages, media file sharing, location sharing, audio and video calls, read receipts, last-seen timestamps, message deletion (own-side or both sides), user blocking, and contact import from the device address book.

Ad Manager (Self-Serve)

Users can promote their own posts as ads through an in-app Ad Manager. The flow: select a post → set schedule and target audience → upload additional creative → pay via Stripe. The admin panel approves or rejects ad requests before they go live. Ad analytics show impressions and clicks per campaign.

Groups & Pages

Users can create or join Groups (closed communities) and Pages (public brand/interest pages). Group posts are visible only to members; Page posts are public. Both support full post interaction — likes, comments, shares.

Admin Panel (React.js)

A comprehensive web panel for platform operations:

  • Dashboard: registered users, post counts by type, active ads, earnings
  • User management: view profiles, suspend/reinstate accounts, manage ban periods
  • Content moderation: flag reported posts, remove content, issue posting bans (30/60/90 days)
  • Ad management: approve/reject ad requests, view per-ad earnings
  • Transaction management: filterable by day, week, month, and year

Tech Stack

Layer Technology
Mobile Flutter 3 / Dart (iOS + Android)
Web Frontend React.js (website + admin panel)
Backend Supabase (PostgreSQL + real-time subscriptions)
Live Streaming Agora.io
Messaging & Calls Supabase Realtime + WebRTC
Payments Stripe Connect (user-to-creator + ad payments)
Push Notifications Firebase Cloud Messaging
Analytics Firebase Analytics
Storage Supabase Storage + CDN
Social Auth Google / Apple / Facebook OAuth

Results

6-month delivery of the complete product: Flutter app (iOS + Android), React.js website, React.js admin panel, and Supabase backend — including Stripe live stream payments, Agora video integration, and the full Ad Manager flow.

17-second cold start to live for streamers — from tapping "Go Live" to the stream being available to viewers.

< 350ms message delivery for direct messages via Supabase Realtime subscriptions.

4.5★ average rating across 180 beta reviews, with the paid live streaming feature cited most frequently as the platform's standout differentiator.

3 concurrent revenue streams built into the launch product: paid live stream entry fees, self-serve post advertising, and platform commission on marketplace transactions — giving the business multiple paths to monetisation without requiring premium subscriptions.

2-factor authentication on all accounts (OTP via SMS + email) and full social login (Google, Apple, Facebook) — zero account-security issues in the first 90 days.

3 months post-launch free maintenance provided: bug fixes, library updates, App Store/Google Play policy compliance monitoring, and OS version compatibility updates.

What Made This Work

Supabase was the right backend choice for this project. Its real-time subscription system powered both the live feed updates and the messaging layer without requiring a separate WebSocket infrastructure. The PostgreSQL foundation gave us relational data integrity for the social graph, ad transactions, and user management — while Supabase's row-level security policies let us implement privacy controls (public/private accounts, group membership visibility) at the database level rather than in application code.

The paid live streaming flow required careful UX design around the "slot full" state. When all 16 paid slots are taken, new viewers see a waitlist count and receive a push notification the moment a slot opens — a 4-second re-engagement window. Getting this notification latency below 6 seconds was the hardest real-time challenge in the project.