NAZMUL

E-Paper CMS

Content Platform

Production
2022
Full
E-Paper CMS
003
Year

2022

Duration

8 months

Team

3 engineers

Role

Full Stack Developer

Scalable newspaper management for editors and publishers

Overview

E-Paper CMS is a full-featured editorial platform built for a daily newspaper with multiple print and digital editions. The system handles the complete content lifecycle: journalists draft articles, editors review and schedule them, sub-editors handle layout, and the platform automatically publishes to web and generates PDF editions for digital distribution. Advertisement management tracks booking, placement, and billing. The analytics layer gives editors real-time insight into article performance, reader retention, and ad impressions. A MongoDB-backed content store handles the flexible and evolving schema of news articles with varying metadata, embedded media, and edition placements.

Key Achievements

Multi-stage editorial workflow: draft → review → approved → scheduled → published

Automated PDF edition generation from web content using Puppeteer

Advertisement booking, placement tracking, and billing integration

Real-time article analytics with reader engagement metrics

AWS S3 media pipeline with automatic image resizing for web and print

Role-based access across journalist, sub-editor, editor, and admin roles

Technical Challenges
01
Flexible content schema

News articles vary enormously — breaking news has minimal metadata while feature pieces have authors, photographers, tags, editions, and layout specifications.

SOLUTION →Used MongoDB with a base schema for common fields and an open `metadata` field for article-type-specific attributes. Prisma's MongoDB adapter gave type safety without rigidity.
02
PDF generation at scale

Generating two daily print-ready PDFs from web content using Puppeteer was slow (45+ seconds) and blocked other server tasks.

SOLUTION →Moved PDF generation to a dedicated worker process with a Redis job queue. PDFs generate asynchronously and editors are notified via WebSocket when ready for download.
03
Simultaneous editing conflicts

Multiple editors occasionally opened the same article, causing save conflicts and lost work.

SOLUTION →Implemented an optimistic locking system using document version numbers. Conflicting saves are rejected with a diff view so editors can merge changes manually.
metrics.json
10K+
Articles / Month
99.9%
Uptime
2
PDF Editions/Day
<30s
Avg Publish Time
50K+
Media Assets
5
Editorial Roles
Technology

Backend

Node.jsTypeScriptExpressPrisma (MongoDB)

Database

MongoDB AtlasRedis (pub/sub)AWS S3 (media)

Frontend

Next.js 13Tailwind CSSReact Query

Tooling

Puppeteer (PDF gen)Sharp (image resize)SendGrid
Development Timeline

PHASE 01Content Architecture

Schema designWorkflow mappingRole definitionsAPI planning