Home/Case Studies/Opinito
CASE STUDYOTHER · OPINIONATED SOCIAL NEWS APP

Opinito

An opinion-first social news app that ingests articles automatically, personalises every feed by interest, and builds a social graph from Love/Hate reactions on each story.

56Weeks operated
4k+Hours of work
8Engineers

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.

⊛ Live in production

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.

How it was built, phase by phase.

8 workstreams across 56 weeks of operated delivery

  1. (001)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)
  2. (002)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
  3. (003)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
  4. (004)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
  5. (005)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)
  6. (006)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)
  7. (007)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)
  8. (008)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

Stop renting hours. Start running functions.

Pick the function you want off your plate. We map the brain and name the outcome before you commit.