Project

Independent Media

  • 3servers
  • 1.7Mvisits/month
  • ≈200Krequests/sec · DDoS
Selected work

Independent Media Some project information is withheld from public access under an NDA. Further details may be shared on personal inquiry.

Media · Investigative journalism

Investigations for readers. Tools for the newsroom.

Independent Media is an online publication focused on investigative journalism, fact-checking and analysis. We built the reader site and the editorial CMS: from the home page, articles and the investigations archive to a block-based article editor, a news calendar and newsroom analytics.

Scale and technology

3
website servers
1.7M
visits per month
≈200K
requests/sec under DDoS
Core technologies
Next.jsReactPHPPostgreSQLRedisElasticsearchRabbitMQHAProxyNginxDockerImageMagickGDlibvips

DDoS protection

The project withstands powerful DDoS attacks and high load, staying available to readers and the newsroom.

Composition of screens: the publication home page, the story editor and CMS analytics

For readers

  • Home page with the lead story of the day, opinion pieces and a news feed updated throughout the day
  • Investigation topics gather stories from different years on one subject; sections replace an endless feed
  • Search across all stories with section and date filters and an exact-match mode
  • Article and news pages with a Popular block, a view counter and share buttons
  • Morning brief and weekly digest by email — sign up with a single field

For editors

  • Articles, news, opinion and live blogs in one CMS
  • Stories built from blocks: text, photos and galleries, video, embeds, quotes, accordions and maps
  • Edit locks show who is working on a story, so edits never overwrite each other
  • Autosave and length counters for the headline and lead
  • Weekly news calendar: publications by day and free slots for scheduled stories
  • View analytics and author rankings for news, articles, opinion and live blogs

Infrastructure

  • Three servers run both the reader site and the newsroom CMS
  • Powerful DDoS attacks and high load — the site stays up for readers and the newsroom
  • 1.7M visits a month with no slowdown
  • PHP on the back end, Next.js on the front end
  • Data in PostgreSQL, cache in Redis
How the publication works

The publication home page

The publication home page with opinion, the lead story and the news feed

The home page: opinion pieces, the lead story of the day and the news feed on one screen.

Stories

Article and investigation topic

Article with an investigation topic bar, view count and the Popular block

A half-screen photo, section, headline, author and date. A bar below the header links to the investigation topic the article belongs to and shows how many stories it has. View count and share buttons on the right, “Popular” next to the text.

Stories

News story

News page with an illustration and the Popular block

News uses the same grid as articles: section, headline, author, date and time. Source links in the text, “Popular” on the right.

Archive and navigation

Section page

Economy section: story cards, newsletter sign-up and opinion

A large section title and story cards with photo, author and date. The side column holds the newsletter sign-up and fresh opinion; arrows in the header switch to neighbouring sections.

Archive and navigation

Investigation topic

Investigation topic page with its list of stories

Stories from different years on one subject are collected on a single page over the topic cover. Readers see the whole story, not a single piece.

Archive and navigation

Search

Search results for “artificial intelligence” filtered by the Economy section

Search across all stories with section and date filters, relevance sorting and exact match. Results show cover, section, author and date.

Newsletter

Newsletter sign-up

Newsletter page: newsletter choice, form and sample email

Readers choose the morning brief or the weekly digest and subscribe with a single field. A sample email shows what will arrive.

Editorial CMS

Newsroom analytics

CMS analytics: publication and view charts, author rankings

Publication counts and views for news, articles, opinion and live blogs by week, month, half-year or all time, plus author rankings by output and views. CMS data in the screenshots is illustrative.

Editorial CMS

News calendar

Weekly news calendar with stories by day

The week of the news feed by day: how many stories went out and how many views they got, with time, headline and author of each. Today is highlighted, and free slots can be used to schedule a story.

Editorial CMS

Article list

Article list with the Locked column and editor statuses

A table with date, section, authors and views, search and filters. The “Locked?” column shows who is working on a story right now, so editors don’t overwrite each other.

Editorial CMS

Story settings

Article editor, Main tab

Status, publication date, headline and lead with character counters, section, authors and cover. While an editor works, the story stays locked to them and fields save automatically.

Editorial CMS

Stories built from blocks

Content tab: text block, block palette and gallery

An article is assembled from blocks: rich text, images, video, embeds, quotes, related stories, accordions and maps. Blocks can be reordered, switched off and placed in the text by code.

Editorial CMS

Accordion and map

Accordion and Map block settings

The accordion tucks methodology and notes under headings. The Map block colors regions by a chosen scheme, takes a comment per region and imports data as JSON.

Editorial CMS

Map in a story

US map from the Map block with a legend

How a map from the block looks in an article: title, colored regions and legend.

skin in the game

We don’t just build for clients. We run our own products.

Since 2013 we have launched, sold and operated our own services. That changes how we work on yours.

  1. 01

    Owner’s judgment

    We weigh every feature against cost and payback — and push back on scope that doesn’t serve the goal.

  2. 02

    Production-proven stack

    The architecture we recommend is the one running our own products under real load.

  3. 03

    We stay after launch

    We operate our own services 24/7, so monitoring, releases and incidents are routine, not an upsell.

  4. 04

    Business, not just code

    Pricing, payments, analytics, growth — we have been through it ourselves and speak your language.