big-static-data-frontend

Implements sharded JSON loading and client-side search patterns for large static datasets.

Updated Mar 21, 2026
One-click install
npx skills add https://github.com/KuschiKuschbert/recipelibrary --skill big-static-data-frontend-kuschikuschbert
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: big-static-data-frontend
Source: https://github.com/KuschiKuschbert/recipelibrary/tree/main/.cursor/skills/big-static-data-frontend
Command: npx skills add https://github.com/KuschiKuschbert/recipelibrary --skill big-static-data-frontend-kuschikuschbert

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Serving tens of thousands of rows from static hosting (GitHub Pages, CDNs) without a backend causes slow first loads and unresponsive search when the full catalog ships as one giant JSON file. ## Core Features & Use Cases - Catalog Sharding: Split index data into many small JSON files loaded with Promise.all, keeping heavy detail records in separate lazily fetched files keyed by id. - Fast Lookup & Search: Build id-to-shard maps for O(1) modal resolution and precomputed lowercase search haystacks with token-AND filtering and optional LRU memoization. - Routing Indexes: Ship small sidecar bloom/token indexes to fetch only candidate shards for query-shaped subsets, with fallback to all shards. - Use Case: A recipe library with 38k entries on GitHub Pages loads only eight merged alpha_catalog shards for the list view, then fetches one detail bucket per opened recipe card. ## Quick Start Apply the big static data patterns to shard my 10k-row JSON catalog and add lazy detail loading with a precomputed search index.

Frequently Asked Questions about big-static-data-frontend

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I serve a large JSON dataset on GitHub Pages without a backend?

Split the index into many small JSON shards loaded with Promise.all and merged in memory, keeping heavy detail records in separate files fetched lazily per id. Never ship the full catalog as one multi-MB file or inline script constant, since parse cost blocks time to interactive.

How to make client-side search fast over 10k+ rows in the browser?

Precompute one lowercase haystack string per row combining name, tags, and facets, then filter with token-AND matching against that string. Add a small LRU memo on the filter signature to handle backspace-heavy typing without rebuilding strings on every keystroke.

What is a routing index for static JSON shards?

A routing index is a small sidecar file containing per-shard token blooms or normalized word lists. The browser picks candidate shards by query overlap and fetches only those, falling back to all shards if the index is missing or yields no candidates.

Can I use this approach without a search library like MiniSearch?

Yes, the patterns rely only on fetch, JSON.parse, and plain in-memory objects or Maps, with no bundled search library. A true inverted index is listed only as an optional later step if profiling shows filtering is still slow.

Why is my static site's first load slow with a big JSON file?

A single multi-MB JSON file forces synchronous parsing of a huge string on the critical path, blocking time to interactive. Sharding the index and lazy-loading detail records spreads parse cost and lets the list render from small index files first.