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.