All work
CMS & News Portal
March 2026 - Present
A custom-built multi-tenant headless CMS and high-performance news portal (no Sanity, no Strapi), in production with several newspapers. Drag-and-drop page editor, real-time analytics and a heavy SEO focus.
The problem
Off-the-shelf CMSs charge per site and don't bend to how a newsroom actually works; scaling to several newspapers on one of them was expensive and rigid.
Features
- Article lifecycle: draft, scheduled, published, archived and restored, with full version history and audit trail
- Drag-and-drop layout editor for home, article and category, with 15+ widget types
- Rich text with EditorJS and an S3 media library with cropping, focal point and metadata
- Real-time analytics (24h / 7d / 30d), audience segments, staff leaderboards and trending content
- SEO suite: 8 dynamic sitemaps, JSON-LD (Article, NewsArticle, Breadcrumb), canonicals with slug history, robots, RSS with WebSub and SEO scoring
- Banner and advertising system
- Automatic publishing to Twitter/X, idempotent and schedulable
- Category and tag hierarchy with per-category layouts
- Author and staff profiles, with per-newspaper theming
- AI content assistance with Gemini
- Concurrent-editor presence: who is editing what, live
- Multi-tenant with per-newspaper isolation, RBAC and full audit logging
- A React component library published to npm and shared by the admin and the portal
My responsibility
Full-stack on a team, across all four repos: API, admin panel, public portal and the shared component library I published to npm.
Stack
- Frontend
- Next.js 15 (App Router, SSR/ISR, dynamic sitemaps), React 19 + Vite + MUI (admin), EditorJS, in-house component library published to npm
- Backend
- Node 18 (ESM), Express 4, Sequelize 6, PostgreSQL, JWT + RBAC, AWS S3 + CloudFront, Sharp, FFmpeg, SendGrid, Google Gemini
Next.jsReactNode.jsPostgreSQLSEOAWS