Other · Opinionated Social News App
Opinito
Cross-platform consumer mobile application.
The brief
Build and launch a full-featured cross-platform mobile application (Android + iOS) for a consumer opinion-and-news platform — including automated content ingestion, personalised interest-based feeds, a binary opinion-reaction mechanic, social networking based on shared opinions, user-generated discussion threads, and multi-auth profile management — from scratch to production on the App Store and Google Play Store.
What we built
Opinito is a dual-platform (Android + iOS) opinion-first social news app. At its core: automated Python scrapers ingest news articles via cron into an AWS-hosted MySQL database; users build a personalised 'interest cart' of topics and keywords that filters their news (Instream) and discussion feeds; every post requires a binary Love/Hate reaction before commenting, generating an opinion-based social graph of 'like-minded' and 'opposite-minded' connections. The app supports multi-profile accounts, Google/Apple/OTP/guest authentication, user-created discussion threads with media uploads, bookmarks, deep-linked post sharing (migrated to Branch.io), a daily 'Show Fresh Content' re-engagement flow, and push notifications. The backend runs PHP APIs with stored procedures on AWS RDS, managed by a dedicated DevOps engineer. Both apps are live on the App Store and Play Store with remotely-controllable force-update via Firebase Remote Config.
Both Android and Play Store builds are live in production. The app features: active news instream fed by Python scrapers on AWS; interest cart personalisation with trending keywords; opinion (love/hate) reactions on all content; discussion threads with media upload; social network screen (like-minded/opposite-minded users); multi-profile with Google, Apple, and OTP auth; daily Show Fresh Content onboarding loop; deep-linked post sharing via Branch.io; push notifications (dev-validated, prod rollout in progress at project close); and remotely-controlled force update.
Delivery timeline
How it was built, phase by phase.
8 workstreams across 56 weeks of operated delivery.
- buildWeek 1–56
News Feed & Instream Content Engine
Core news aggregation pipeline: Python scrapers ingest articles via cron jobs into the database, while the mobile apps surface content through a paginated 'Instream' feed with topic-filtered tabs.
Stable news instream feed live in both Android and iOS with automated content ingestion from external sources
PythonCrontabMySQLPHPAndroid (Kotlin)iOS (Swift) - stabilizeWeek 1–56
Opinion & Reaction System (Love/Hate)
Core differentiator allowing users to express binary opinions (love/hate) on news and discussion posts.
Binary opinion system live on both platforms with like-minded/opposite-minded user counts surfaced in feed headers
Android (Kotlin)iOS (Swift)MySQL Stored ProceduresPHP APIsCrashlytics - buildWeek 1–56
Discussion & Community Posting Module
User-generated content layer allowing creation of discussion posts (text, images, videos), threaded comments, bookmark functionality, post reporting, and a 'Show Initial Discussion' onboarding flow.
Full discussion creation, commenting, bookmarking, and reporting live on both Android and iOS
Android (Kotlin)iOS (Swift)MVVMFigmaTestFlightGoogle Drive - buildWeek 4–56
Interest & Topic Cart (Personalisation Engine)
User-personalisation system where users build a 'cart' of interest topics and keywords. Topics drive the content feed.
Dynamic personalisation cart driving topic-filtered news and discussion feeds with trending keyword suggestions
Android (Kotlin)iOS (Swift)PHPMySQL Stored ProceduresFigma - buildWeek 5–56
Multi-Profile & Authentication System
Multi-profile architecture allowing one account to have multiple personas. Auth supports Google login, phone/OTP login, Apple Sign-In, guest mode, and Facebook login (investigated then disabled).
Robust multi-auth system supporting Google, Apple, OTP, and guest profiles with cross-platform parity
Google Sign-In SDKFirebase AuthApple Sign-InOTP/SMSAndroid (Kotlin)iOS (Swift) - integrateWeek 10–50
User Network & Social Graph
Social layer surfacing 'like-minded' and 'opposite-minded' user connections based on shared opinion patterns.
Network screen showing opinion-matched connections, with per-post like-minded/opposite-minded user counts
PHPMySQLAndroid (Kotlin)iOS (Swift) - integrateWeek 15–56
Deep Linking & Content Sharing
Shareable post links that open within the Opinito app. Covers copy-user-cart deep links, WhatsApp preview cards, and migration from deprecated Firebase Dynamic Links to Branch.io.
Post-sharing with in-app deep link resolution and WhatsApp link previews; cart-copy viral sharing implemented
Firebase Dynamic LinksBranch.ioAndroid (Kotlin)iOS (Swift) - buildWeek 40–56
Show Fresh Content (Daily Discovery Flow)
Onboarding and re-engagement mechanic showing users new discussion topics each day or on login, prompting them to indicate opinions on fresh content and saving selections to their cart.
Daily re-engagement loop live on both platforms, showing fresh discussion topics each login and saving user reactions to cart
Android (Kotlin)iOS (Swift)PHPMySQLFirebase Remote Config
More case studies
Related work
09 · Run a function
Stop renting hours. Start running functions.
Pick the function you want off your plate. We'll map the brain and name the outcome we'd commit to — before you do.
