Delivered remotely for a business based in Warsaw, Poland. Names withheld by agreement.
Project Overview
Industry: Consumer social media and user-generated content.
Type of solution: A REST API and administrative platform with a native mobile application — a social network built around short-form opinion content, with creator monetisation and advertising revenue.
Business context: Every consumer social product faces the same opening problem. Engagement depends on content, content depends on users, and users depend on engagement. Products that solve this get network effects; products that do not are abandoned within a week of launch, no matter how well built. The commercial model compounds the challenge: advertising alone rarely sustains a young platform, so a second revenue path has to exist without making the product feel like a paywall.
General users: Consumers who create and respond to opinion content, and the platform's own administration and moderation team.
General purpose: To make publishing and answering an opinion quick enough to be habitual, to guarantee that the feed is always worth opening, and to monetise through both advertising and voluntary paid promotion.
The Business Challenge
The empty feed problem. User-generated content arrives unevenly, and it arrives least when a platform most needs it — at launch and in quiet periods. A user who opens the app and sees nothing new does not come back to check again.
Engagement needs more than one loop. Voting alone is a shallow interaction. The product needed layered reasons to return: results worth seeing, comments worth reading, people worth following, statistics worth checking, and competitive formats that create a reason to participate rather than observe.
One feed is not enough. Different users want different things — what people they follow are asking, what matches their interests, what they have already answered, what is competitive, what has finished. Each of those is a distinct query over the same content, and all of them must be fast.
Monetisation without alienation. Advertising alone is thin revenue for a young platform, but paid features in a consumer social product are resented if they feel compulsory. The mechanics had to be genuinely optional and genuinely useful.
Media raises the bar and the cost. Users expect to post images and video. That means capture, upload, processing, thumbnailing and delivery — at a cost that does not scale badly and a speed that does not lose the user.
Moderation is not optional. The moment a consumer platform has real users, it has content that needs removing, users who need restricting, and reports that need reviewing.
Notifications are the retention channel. Votes, comments, follows and promotion requests all warrant a notification — and getting the volume and targeting wrong is one of the fastest ways to lose an installed user.
Our Approach
Solve content supply as an engineering problem. Rather than treating an empty feed as a marketing issue, we built content supply into the platform: a managed reservoir of content released on a daily schedule against configurable targets, with a release algorithm that adjusts to reservoir depth and administrative ordering controls on top. The feed has a guaranteed floor.
Add AI-assisted generation as a supply and revenue feature at once. Content generation assistance was built with rate limiting, and the rate limit itself became a purchasable upgrade — one feature serving both the supply problem and the monetisation model.
Design the economy with pre-flight checks. Any action costing credits is validated before the user commits: the client can ask what an action will cost and whether it is permitted, so users are never surprised after the fact and the balance logic has one authoritative source.
Make paid promotion a negotiation, not a vending machine. Boost and extend were built as request, accept and decline flows rather than instant purchases, so the platform arbitrates promotion rather than simply selling placement.
Build feed variants as first-class endpoints. Each feed variant was implemented as its own paginated endpoint with its own selection logic, rather than one endpoint with a mode flag — clearer to reason about, and independently tunable when one variant turns out to be the expensive one.
Process media on the server. Video processing, thumbnail extraction and format handling run server-side, so consumer devices are not asked to do work that varies wildly in capability and battery cost across a real user base.
Build the administrative platform properly. Moderation, member management, economy configuration, content scheduling, multi-language content and analytics were treated as a product for the operations team, not an afterthought.
The Solution
Short-form opinion publishing. Users create polls with supporting images or video, categorised by topic and discoverable by hashtag. Creation is deliberately light — the product's premise is that asking should take less effort than writing a post.
Layered feeds. The platform serves several distinct feeds over the same content: currently running, from people you follow, matched to your interests, ones you have answered, competitive formats, open challenges and completed results. Each is paginated independently.
Voting, results and statistics. Users vote, see results, and access detailed statistics with visual breakdowns — turning a single tap into something with a payoff worth returning for.
Comments with community ranking. Threaded commentary with upvote and downvote, so discussion quality is surfaced by the community rather than by recency alone.
Social graph. Following and follower relationships shape the feed and give creators an audience that persists between posts.
Search and discovery. Search across content and hashtags, plus topic browsing, so the platform is navigable rather than dependent on the feed alone.
Collections and history. Bookmarks, folders and recently-viewed lists let users retain what they care about, adding a personal layer over an otherwise ephemeral format.
Virtual credit economy. Credits are spent on platform actions and topped up through in-app purchase, with costs and eligibility validated before any action is committed.
Paid promotion and extension. Creators can request that a poll be boosted for visibility or extended in duration, through flows the platform can accept or decline — optional mechanics that add revenue without gating core use.
AI-assisted content creation. Assisted generation helps users produce content, with rate limits that can be raised through purchase — supporting both content supply and monetisation.
Automated content scheduling. A managed reservoir of content is released daily against configurable targets, with administrative ordering control, so the feed is never empty regardless of user activity.
Moderation and administration. Full administrative control over members, content and comments, with status controls, reporting review, engagement targeting lists, analytics, multi-language content management and scheduled task oversight.
Multi-channel notification. Push notifications on each meaningful interaction type — votes, comments, follows, promotion requests and platform events — with email and SMS for verification and transactional messaging.
Key Features
Short-form opinion publishing with media Fast poll creation supported by images and video, categorised by topic and discoverable through hashtags.
Multiple independent feed algorithms Following, interests, participated, competitive, open challenge, running and completed feeds — each its own paginated endpoint with its own selection logic and tuning.
Automated daily content release A managed content reservoir released on schedule against configurable targets with a depth-aware release algorithm, guaranteeing the feed always has something new.
AI-assisted content generation with purchasable limits Generation assistance with rate limiting, where raising the limit is itself a purchase — addressing content supply and revenue in one mechanic.
Virtual credit economy with pre-flight validation Costs and eligibility are checked before any credit-consuming action, so users know what an action costs and balances are validated in one authoritative place.
Paid promotion and extension as negotiated flows Boost and extend implemented as request, accept and decline sequences, letting the platform arbitrate promotion rather than sell placement automatically.
Community-ranked commentary Comments with upvote and downvote so discussion quality surfaces through community judgement.
Results and detailed statistics Visual result breakdowns and extended statistics, giving each interaction a payoff and creators a reason to keep posting.
Server-side video processing Upload, transcoding and thumbnail extraction handled server-side, keeping the experience consistent across a diverse device population.
Full moderation and administration platform Member and content management, status controls, report review, engagement targeting, analytics, multi-language content and scheduled task oversight.
Technical Architecture
Mobile client. A native iOS application with per-feature view controller groups, token-based authentication with credentials held in the platform keychain, in-app video capture and editing, rich media handling and animation, connectivity awareness, and integrated advertising and push notification services.
API layer. A versioned JSON API serving the mobile client, with paginated endpoints per feed variant, pre-flight validation endpoints for credit-consuming actions, and a separate unauthenticated public read surface for open data.
Administrative platform. A full server-rendered back office covering moderation, member management, content scheduling, economy configuration, multi-language content, analytics and operational tooling — a distinct audience served by the same application.
Application layer. Controllers organised by audience and then by feature, with domain logic in per-area models and shared processing functions for notification dispatch and response shaping.
Content scheduling layer. A scheduled process maintaining and releasing the content reservoir according to configurable targets and a depth-aware release algorithm, with administrative ordering overrides.
Media pipeline. Client capture, upload to cloud object storage, server-side video processing and thumbnail extraction, and delivery from object storage.
External services. SMS verification, transactional email, cloud object storage, push notification delivery, social authentication providers, an AI text generation service, advertising, and platform in-app purchase.
Delivery. Continuous integration with automated deployment to the hosting environment.
Flow: iOS app → Versioned JSON API → Controllers & domain models → Relational database → Cloud object storage + server-side media processing → Push / email / SMS → Scheduled content release & notification processing
Technology Stack
| Category | Technology |
|---|---|
| Backend language | PHP |
| Backend framework | CodeIgniter (MVC), partitioned into API, administration and public surfaces |
| Database | MySQL |
| Media storage | Google Cloud Storage |
| Video processing | FFmpeg (server-side, via PHP integration) |
| SMS / verification | Twilio |
| Transactional email | SendGrid |
| Mobile platform | Native iOS (Swift) |
| Mobile networking | Alamofire |
| Mobile auth & storage | JWT handling with Keychain-backed credential storage |
| Push notifications | Firebase Cloud Messaging |
| Social authentication | Google Sign-In, Facebook Login |
| Advertising | Google Mobile Ads SDK |
| Video capture | In-app recording and editing library |
| Mobile media & UI | Image caching and slideshow libraries, Lottie animation, interactive transition and charting components |
| Connectivity | Reachability handling |
| Scheduling | Cron-driven content release and notification processing |
| CI/CD | CircleCI with Capistrano deployment |
| Mobile dependencies | CocoaPods |
Technical Challenges & Solutions
| Challenge | Our Approach |
|---|---|
| A feed that is empty when user activity is low — the failure mode that kills consumer social products | A managed content reservoir released daily against configurable minimum and maximum targets, with a release algorithm that adapts to reservoir depth and administrative ordering controls, so the feed has a guaranteed floor independent of user behaviour. |
| Content supply and monetisation both needing solutions | AI-assisted content generation with rate limiting, where the rate limit itself is purchasable — one mechanic serving supply and revenue simultaneously. |
| Several distinct feeds over the same content, all needing to be fast | Each feed variant built as its own paginated endpoint with its own selection logic, rather than a single endpoint with mode switching — independently reasoned about and independently tunable when one proves expensive. |
| A virtual economy that must not leak value | Pre-flight cost and eligibility endpoints so the client can validate before committing, with balance and cost logic held in one authoritative place rather than duplicated across features. |
| Monetising without making the product feel gated | Paid mechanics built as optional promotion and extension, structured as request/accept/decline flows so the platform arbitrates rather than sells placement, leaving all core functionality free. |
| Video on consumer devices of wildly varying capability | Capture on device, then upload with transcoding and thumbnail extraction performed server-side, so experience and output quality do not depend on the user's handset. |
| Notification volume across many interaction types | Interaction-type-specific notification processing with shared dispatch handling, so each event type notifies the right audience with the right content rather than everything firing through one generic path. |
| Moderation and operations at consumer scale | A full administrative platform treated as a product in its own right — member and content management, status controls, report review, engagement targeting lists, analytics and scheduled task oversight. |
| Reaching users in multiple languages | Administrator-managed multi-language content alongside application localisation, so operational content can be maintained without a release. |
Security & Reliability
Authentication. Token-based API authentication with credentials stored in the device keychain rather than general application storage, alongside social sign-in providers for low-friction onboarding.
Identity verification. SMS-based phone verification, raising the cost of automated account creation on a consumer platform.
Surface separation. The authenticated consumer API, the administrative platform and the public unauthenticated read surface are separated within the application, so administrative capability is not reachable from the consumer surface.
Content safety controls. User-level reporting and blocking, administrative status controls across content and comments, and moderation review tooling in the back office.
Economy integrity. Credit-consuming actions validate cost and eligibility server-side before committing, so client behaviour cannot be trusted into a balance change.
Operational tooling. Administrative oversight of scheduled tasks and platform configuration, with an analytics dashboard for visibility of platform activity.
Media durability. User media is held in cloud object storage independent of application servers.
Repeatable releases. Automated continuous integration and deployment for controlled delivery of changes to a live consumer platform.
Scalability & Performance
Paginated everywhere. Every feed and listing endpoint is paginated with limits, so no request returns an unbounded collection as content accumulates.
Independent feed endpoints. Because each feed variant is its own endpoint, an expensive variant can be optimised or cached without touching the others.
Response shaping before serialisation. Result sets are deduplicated and shaped server-side so the client receives exactly what it renders.
Server-side media processing. Transcoding and thumbnail generation happen once, server-side, rather than repeatedly on client devices.
Object storage delivery. Media is served from cloud object storage, which removes media traffic from application servers and supports CDN distribution.
Scheduled batch work. Content release and notification processing run as scheduled batch operations rather than inside user requests.
Client-side caching. Image caching on the mobile client reduces repeat fetching across sessions in a media-heavy feed.
Business Outcomes
- The feed is never empty, because content supply is guaranteed by the platform rather than dependent on daily user activity.
- Multiple engagement loops — voting, results, statistics, comments, following, competitive formats — give users more than one reason to return.
- Two revenue paths coexist, with advertising alongside optional paid promotion and credit purchases, without gating core functionality.
- Creators can invest in their own content through promotion and extension, aligning the platform's revenue with its most active users.
- Content supply and revenue share a mechanic, through AI-assisted generation with purchasable limits.
- The operations team can run the platform, with moderation, member management, economy configuration and analytics built as a first-class administrative product.
- Users can post rich media reliably, because processing burden sits on the server rather than on their devices.
- The platform reaches multiple language markets, with operational content maintainable without a release cycle.
Why it worked
Consumer social products are not hard because the screens are complicated. They are hard because they have to work on day one, when nobody is using them, and still work on day one thousand, when everybody is. Those are different engineering problems, and most teams only build for the second one.
Our team builds for both. We treat content supply as an engineering responsibility rather than a marketing hope, because a feed with nothing in it is a product with nobody in it. We design virtual economies with server-side validation and pre-flight checks, because economies that trust the client leak value. We build the administrative platform as a real product, because moderation and operations become urgent the week after launch and are miserable to retrofit. And we keep expensive work — video processing, batch release, notification fan-out — off the request path and off the user's device.
Our teams span PHP platform engineering, versioned API design, native iOS development, media pipelines, third-party integration across payments, messaging, advertising and AI, and automated delivery. For a consumer product, that breadth matters: the feature that decides whether the app is retained is rarely the one anyone planned to build.
Final Summary
A social product's hardest day is its first. The feed is empty, there is no network to create the effect, and any user who opens the app and finds nothing worth reading has no reason to open it again. Solving that with content alone is a treadmill; solving it with engineering is a platform.
Our team built a consumer social network around short-form opinion content, with the supply problem addressed structurally: a managed content reservoir released daily against configurable targets, with a depth-aware release algorithm and administrative controls, so the feed always has something new. On top of that sit the loops that make a social product habitual — layered feeds, results and detailed statistics, community-ranked comments, following, competitive formats and personal collections — and a monetisation model that runs on advertising plus genuinely optional paid promotion, backed by a credit economy with server-side validation of every cost.
The platform pairs a PHP backend serving a versioned mobile API, a full moderation and operations back office, and a public read surface, with a native iOS application handling media capture, rich presentation and push engagement. Media processing runs server-side so device capability does not shape user experience, and every listing is paginated so the platform performs the same after a year of content as on the day it launched. The engineering emphasis throughout was on the parts that decide whether a consumer product survives contact with reality: content supply, economy integrity, moderation capability, and performance that does not degrade with success.