Platforms

Scroller

Infinite-scroll feed engine.

The reusable JSON-driven scroller that powers media feeds across the fleet. Randomised feed, modal details, JSON import/export, infinite scroll over any normalised dataset.

  • JSON-in, feed-out — normalise any dataset to the Scroller schema
  • Randomised feed with modal detail view out of the box
  • Infinite scroll with lazy loading over any sized dataset
  • Embedded in every list site and travel site in the fleet
Why

Every top-100 list site needs an infinite-scroll feed. Building one from scratch per project wastes a sprint. Scroller is a solved, drop-in module — normalise the JSON and get a feed.

How
  • Normalise your dataset to the Scroller JSON schema (title, blurb, image, meta)
  • Drop the component into any Next.js page — modal detail and infinite scroll included
  • Randomise or sort the feed; export as JSON for any downstream use
Proof
Fleet sites running Scroller
multiple
Feed setup time
< 1 hour
Input format
any JSON → normalised schema
Scroller — JSON in, feed out
Normalise · Render · Export
Hover or tap a node to see details.
FAQ
What data does Scroller actually need?
A normalised JSON array — each item with title, blurb, image URL, and a meta dict. Anything else is optional. The mapper handles ingest from any source shape.
Is the feed truly infinite?
Lazy-loaded in viewport-sized batches. The full dataset is held server-side; clients fetch as they scroll. Performance stays constant past 10,000 items.
Can I sort or filter instead of randomising?
Yes — randomise is the default, but any JSONPath sort or filter expression works. Pass ?ordered=true for the input order, or wire a custom comparator.
In production
  • Cross-fleet scroller

    Same engine across yb100, xmas, fad, wbp — JSON in, infinite feed out, modal detail view.

    See it
  • Setup time < 1 hour

    Normalise a dataset to the Scroller schema, drop the component in, ship. Reusable across any list site.

  • Embeddable React component

    Single drop-in for any Next.js page — no per-site rewrite, no per-site CSS.