Most newsroom sites still ask readers to make a choice after every article: click back, hunt for the next headline, or leave. story-feed replaces that dead end with a single scrollable stack of stories docked wherever the site already has room for it — a sidebar next to the article you're reading right now, for instance.

It ships as one Web Component (<story-feed>), no React/Vue/Angular required, and reads from a simple feed API that a newsroom can populate from an existing RSS feed, a sitemap, or a custom backend. Drop the tag and a script include on any page and it renders itself inside whatever container you give it — full width on a phone, or boxed into a fixed sidebar like the one to the right of this paragraph.

Three item types, one feed

The feed mixes articles, short video reels and ad placeholders in a single vertical, swipeable sequence, loading more automatically as the reader scrolls — no "load more" button, no pagination to design around.

  • Articles open a full reader in place, without leaving the page or losing the feed's scroll position.
  • Video reels autoplay muted and let the reader tap to unmute — no extra chrome, no algorithmic ranking.
  • Ad cards and overlays reserve the placeholder; your existing ad stack fills the creative.
A reader who finishes one story is already scrolling into the next one — instead of bouncing back to the homepage.

Monetization without extra dev work

story-feed never injects ads itself — it only reserves the placeholder and tells your ad stack exactly where it lives. Full-card ads, in-feed overlays and a dedicated detail-view ad slot all fire a slots-ready event with the container id your SDK needs, so wiring it into an existing Google Ad Manager or Prebid setup is a matter of listening for one event, not redesigning the page.

Analytics from the first pageview

Every embed reports its own engagement out of the box — card views, clicks, reel mutes, feed depth — and can also forward those same events into the newsroom's existing Google Tag Manager container with a single attribute, so nothing has to be tracked twice.