Separate ingestion from delivery
Apache NiFi handled RSS transformation and normalization before persistence. Backend services could work with a consistent content model rather than interpreting every upstream feed.
From a raw RSS feed to the reader’s phone. An entire content ecosystem, designed and delivered.
Conceptual illustration of the product workflow, created for this case study.
Owned the architecture and delivery across ingestion pipelines, backend services, publisher and admin portals, and the Flutter reader app.
Content needed to move from external feeds and publisher submissions into a consistent, moderated reader experience. Ingestion, editorial operations, and mobile delivery had to work as one product.
Connected Apache NiFi ingestion and normalization to MongoDB persistence, NestJS business services, Next.js publishing tools, and a Flutter application. Change Streams linked newly stored content to automated notification workflows.
Apache NiFi handled RSS transformation and normalization before persistence. Backend services could work with a consistent content model rather than interpreting every upstream feed.
MongoDB Change Streams detected new articles. Business rules evaluated content, formed batches, and triggered Firebase Cloud Messaging notifications for the mobile experience.
Publisher submission and admin review, approval, and rejection were modeled as role-based operations. The web portals connected editorial decisions with reader delivery.
For the next stage of scale, I would focus on feed retries, duplicate-content handling, bounded notification batches, and recovery after interrupted event processing. Each boundary needs a clear policy for what happens when work is repeated or delayed.