[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-algolia-algolia-instantsearch-ui":3,"mdc-h8aciv-key":48,"related-org-algolia-algolia-instantsearch-ui":800,"related-repo-algolia-algolia-instantsearch-ui":962},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":32,"repoUrl":33,"updatedAt":34,"license":35,"forks":36,"topics":37,"repo":43,"sourceUrl":46,"mdContent":47},"algolia-instantsearch-ui","build Algolia InstantSearch frontend experiences","Build and review Algolia InstantSearch experiences in JavaScript, React, Vue, Angular (via InstantSearch.js; Angular InstantSearch is deprecated), or compatible frontend stacks. Use when planning or reviewing search results pages, browse\u002Fcategory pages, routing, widgets, filters, facets, sort-by, pagination, infinite hits, current refinements, insights middleware, SSR, or UI-state synchronization. For net-new search UI builds, start with algolia-discovery-planning, which loads algolia-search-implementation so data contract and event taxonomy decisions are visible before UI is marked ready. Do NOT use for autocomplete\u002Ftypeahead experiences before the user commits to a results page; use algolia-autocomplete instead. Do NOT use for choosing between Algolia UI libraries; use algolia-ui-libraries. Do NOT use as the source of truth for current framework APIs or code-level implementation details; use the official instantsearch skill and current docs alongside this customer-readiness skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"algolia","Algolia","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Falgolia.png",[12,16,19,22,23,26,29],{"name":13,"slug":14,"type":15},"Angular","angular","tag",{"name":17,"slug":18,"type":15},"React","react",{"name":20,"slug":21,"type":15},"Vue","vue",{"name":9,"slug":8,"type":15},{"name":24,"slug":25,"type":15},"JavaScript","javascript",{"name":27,"slug":28,"type":15},"Search","search",{"name":30,"slug":31,"type":15},"Frontend","frontend",8,"https:\u002F\u002Fgithub.com\u002Falgolia\u002Fskills","2026-08-01T06:06:33.66513","MIT",2,[38,39,8,40,41,28,42],"agent","ai-assistant","mcp","recommendations","skills",{"repoUrl":33,"stars":32,"forks":36,"topics":44,"description":45},[38,39,8,40,41,28,42],"Algolia skills for AI Agents","https:\u002F\u002Fgithub.com\u002Falgolia\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Falgolia-instantsearch-ui","---\nname: algolia-instantsearch-ui\ndescription: >\n  Build and review Algolia InstantSearch experiences in JavaScript, React, Vue, Angular (via InstantSearch.js; Angular InstantSearch is deprecated), or compatible frontend stacks. Use when planning or reviewing search results pages, browse\u002Fcategory pages, routing, widgets, filters, facets, sort-by, pagination, infinite hits, current refinements, insights middleware, SSR, or UI-state synchronization. For net-new search UI builds, start with algolia-discovery-planning, which loads algolia-search-implementation so data contract and event taxonomy decisions are visible before UI is marked ready. Do NOT use for autocomplete\u002Ftypeahead experiences before the user commits to a results page; use algolia-autocomplete instead. Do NOT use for choosing between Algolia UI libraries; use algolia-ui-libraries. Do NOT use as the source of truth for current framework APIs or code-level implementation details; use the official instantsearch skill and current docs alongside this customer-readiness skill.\nlicense: MIT\nmetadata:\n  author: algolia\n  version: \"0.4\"\n---\n\n# Algolia InstantSearch UI\n\nUse this skill for full search or browse interfaces powered by InstantSearch. Keep the implementation faithful to the index contract and user journey.\n\n## Customer-Facing Standard\n\n- Treat a working search box as incomplete until filters, empty states, routing needs, mobile behavior, and events are considered.\n- Preserve the customer's existing design system and accessibility patterns.\n- Treat Algolia's official `instantsearch` skill from `algolia\u002Fskills` as the implementation authority for React InstantSearch, Vue InstantSearch, InstantSearch.js, source-of-truth checks, prop shapes, widgets, hooks, connectors, SSR, middleware, custom widgets, and framework anti-patterns.\n- Use this skill as the customer-readiness layer around the official skill: clarify the search journey, data contract, refinements, URL behavior, event attribution, mobile interaction, accessibility, and QA.\n- Use public `academy.algolia.com` for learning alignment and public `algolia.com\u002Fdoc` for current implementation guidance when source-backed context is needed.\n- When an Academy metadata reference pack is available, use only its `title`, `url`, `course`, `module`, `learning_objectives`, and `updated_at` fields for structure. If it is stale or no match exists, fall back to live Academy\u002Fdocs lookup. Do not treat cached metadata as course content or implementation authority.\n- Do not require custom Academy\u002Fdocs access; use customer-provided sources only as optional context.\n- When live Algolia data, analytics, index inspection, settings changes, or account actions are needed, use Algolia MCP, the Algolia CLI, or official Algolia skills for the live operation, then apply this skill to interpret results and validate the customer-ready implementation path.\n- Produce implementation notes or code plus a browser-verifiable QA checklist.\n\n## Official Companion Skills\n\n- Use official `instantsearch` from `https:\u002F\u002Fgithub.com\u002Falgolia\u002Fskills` for production implementation details, source-of-truth checks, widget\u002Fhook\u002Fconnector behavior, framework-specific anti-patterns, and code-level InstantSearch or Autocomplete work.\n- Use official `algolia-mcp` when live index schema, sample hits, facet values, or analytics should shape the UI.\n- Use this skill before the official `instantsearch` skill to frame the customer journey and after the official skill to validate UX, routing, event behavior, mobile behavior, and launch readiness.\n- Use `algolia-events-insights` alongside this skill when click\u002Fconversion attribution, Insights middleware, `queryID`, `objectID`, position, or `userToken` behavior affects the UI.\n\n## Source-Of-Truth Rules\n\n- Use the official `instantsearch` skill for framework-specific widgets, hooks, connectors, SSR, middleware, routing, and source-of-truth checks.\n- Follow the official skill's discovery pattern: identify the library (`react-instantsearch`, `vue-instantsearch`, or `instantsearch.js`), inspect existing setup, inspect installed types and docs before writing unfamiliar APIs, and read the matching official reference directory before implementation.\n- Inspect the project dependencies and installed types before assuming package names or prop shapes.\n- Verify current docs before writing SSR, routing, middleware, or event code that is not already present in the project.\n- For net-new implementations, avoid treating UI as isolated from data and events. Confirm that a data contract and event taxonomy exist, or create minimal versions and mark them provisional.\n\n## Workflow\n\n1. Read `references\u002Finstantsearch-guide.md` before implementing or reviewing UI code.\n2. Confirm the framework and InstantSearch package already used by the project. If code will be written, invoke the official `instantsearch` skill or follow its source-of-truth checks before choosing APIs.\n3. Confirm the data contract: index names, replicas, display attributes, facets, ranking fields, secured filters, and event attribution fields.\n4. Confirm the event taxonomy: result clicks, conversion path, `userToken`, `queryID`, `objectID`, index, and position handling.\n5. Define the result-page job: search results page, category\u002Fbrowse page, federated page, internal lookup, marketplace listing, or support\u002Fdocumentation search.\n6. Preserve existing design-system conventions and accessibility patterns.\n7. Teach the customer that Autocomplete helps users choose what to search for, while InstantSearch helps users explore, refine, recover, and act on results after the search.\n8. Wire routing, filters, sort, active refinement feedback, clear refinements, pagination\u002Finfinite hits, loading states, empty states, and events deliberately. A working search box alone is not a complete search experience.\n9. Verify the UI in a browser when possible, including empty states, slow\u002Ferror states, mobile filter behavior, keyboard use, URL restoration, and event readiness.\n\n## Questions To Ask\n\n- Is this a search page, category browse page, federated experience, or internal tool?\n- Which index and replicas power each view?\n- Which refinements are user-visible versus applied silently?\n- Which filters are actually useful to the user for this record type, and are those attributes facetable in the index?\n- How will users see and clear active refinements?\n- Should URL routing preserve query and filters?\n- Should the first page load with an empty query, category filter, route-derived query, or user-entered query?\n- Is pagination, infinite loading, or \"load more\" the best continuation pattern for the context?\n- Is click\u002Fconversion attribution required for analytics or personalization?\n- What is the expected mobile filter\u002Fsort interaction?\n- Does this route need SSR, server components, static generation, or client-only rendering constraints?\n\n## Implementation Standards\n\n- Use InstantSearch widgets\u002Fhooks\u002Fconnectors appropriate to the local framework.\n- When code is required, use the official `instantsearch` skill for the exact framework API and then apply this skill's readiness checks to the result.\n- Keep `searchClient`, index name, routing, and environment configuration out of hard-coded UI leaf components when the project has config patterns.\n- Use `configure` for query parameters and default filters that belong to the search state.\n- Include enough visible structure for users to understand, refine, recover, and continue: results, filters, active refinements, clear refinements, sort when needed, pagination or infinite loading, and empty\u002Fno-results recovery.\n- Make silent filters legible in the product design or documented in the implementation handoff. Users should not be confused by invisible constraints.\n- Match continuation pattern to intent: pagination for comparison and return-to-position, infinite hits for discovery, and load-more when users need both control and flow.\n- Treat mobile filters as a first-class interaction, not a compressed desktop sidebar.\n- Render accessible hit cards with stable objectID-aware interactions.\n- Enable Insights middleware or event helpers when events are in scope.\n- Do not mutate Algolia hits in ways that break objectID, queryID, position, or event attribution.\n- For SSR\u002Frouting work, verify hydration, URL state restoration, and back\u002Fforward behavior using the official skill's SSR and routing guidance.\n\n## Anti-Patterns\n\n- Treating a search input plus hits as a complete experience while ignoring filters, empty states, routing, mobile behavior, and events.\n- Re-implementing official InstantSearch API guidance from memory instead of using the official `instantsearch` skill and installed types.\n- Adding filters without active refinement feedback or a clear-all path.\n- Choosing facets because they exist in the data instead of because users need them to narrow results.\n- Showing facets with confusing labels, empty values, unstable ordering, or no count\u002Frange context.\n- Hard-coding index names, app IDs, or environment-specific values inside reusable UI leaf components.\n- Client-side sorting or filtering Algolia hits in ways that desynchronize facets, positions, pagination, or analytics.\n- Styling InstantSearch markup without checking generated class names or accessibility behavior.\n- Shipping a UI that cannot be verified in a browser with realistic records.\n- Shipping desktop-only filter behavior and assuming mobile users can recover.\n- Enabling URL routing without validating reload, sharing, and back\u002Fforward behavior.\n\n## Completion Checkpoints\n\nBefore calling the UI ready, or when handing off a prototype with follow-ups, state whether these checkpoints are satisfied, deferred, or unknown:\n\n- Referenced data contract or explicit minimal demo data contract.\n- Referenced event taxonomy or explicit user-approved event deferral.\n- Official `instantsearch` skill or current docs\u002Ftypes used for framework-specific API choices.\n- Hit components preserve `objectID`, `index`, `queryID`, position, and `userToken` for event wiring.\n- Facets and filters exist in the index contract.\n- Browser QA covers query, filters, active refinements, clear refinements, sort, pagination or infinite loading, empty states, loading\u002Ferror states, routing when enabled, mobile behavior, keyboard behavior, and event readiness.\n\n## Academy And Customer Education Alignment\n\nWhen source-backed guidance is needed, search public Academy sources for UI learning objectives and public Algolia docs for InstantSearch, routing, widgets, filters, facets, UI state, SSR, and event attribution. Use source guidance to choose maturity level, use-case bundle, guided prompts, and QA artifacts. Keep the skill procedural and source-aligned rather than embedding stale API documentation.\n\n## Maturity Behavior\n\n- Beginner implementation: build the smallest complete search or browse experience with query, hits, filters, loading, empty state, and clear index configuration.\n- Production readiness: validate routing, mobile filters, accessibility, API-key boundaries, event attribution, error states, and environment configuration.\n- Optimization: review query analytics, facet usage, performance, UI friction, A\u002FB testing, and relevance handoff to index configuration.\n- AI readiness: confirm the UI preserves user context, objectID, index, queryID, position, and conversion paths needed by AI and personalization features.\n\n## Output Contract\n\nReturn implemented code or a review with file references, plus an Official Skill Usage Note, Customer UI Plan, Data\u002FEvent Readiness Notes, and concise QA checklist covering query, filters, active refinements, sort, pagination\u002Finfinite loading, empty states, routing, mobile behavior, accessibility, and events.\n",{"data":49,"body":52},{"name":4,"description":6,"license":35,"metadata":50},{"author":8,"version":51},"0.4",{"type":53,"children":54},"root",[55,63,69,76,204,210,292,298,356,362,445,451,509,515,600,606,671,677,682,749,755,760,766,789,795],{"type":56,"tag":57,"props":58,"children":59},"element","h1",{"id":4},[60],{"type":61,"value":62},"text","Algolia InstantSearch UI",{"type":56,"tag":64,"props":65,"children":66},"p",{},[67],{"type":61,"value":68},"Use this skill for full search or browse interfaces powered by InstantSearch. Keep the implementation faithful to the index contract and user journey.",{"type":56,"tag":70,"props":71,"children":73},"h2",{"id":72},"customer-facing-standard",[74],{"type":61,"value":75},"Customer-Facing Standard",{"type":56,"tag":77,"props":78,"children":79},"ul",{},[80,86,91,113,118,139,189,194,199],{"type":56,"tag":81,"props":82,"children":83},"li",{},[84],{"type":61,"value":85},"Treat a working search box as incomplete until filters, empty states, routing needs, mobile behavior, and events are considered.",{"type":56,"tag":81,"props":87,"children":88},{},[89],{"type":61,"value":90},"Preserve the customer's existing design system and accessibility patterns.",{"type":56,"tag":81,"props":92,"children":93},{},[94,96,103,105,111],{"type":61,"value":95},"Treat Algolia's official ",{"type":56,"tag":97,"props":98,"children":100},"code",{"className":99},[],[101],{"type":61,"value":102},"instantsearch",{"type":61,"value":104}," skill from ",{"type":56,"tag":97,"props":106,"children":108},{"className":107},[],[109],{"type":61,"value":110},"algolia\u002Fskills",{"type":61,"value":112}," as the implementation authority for React InstantSearch, Vue InstantSearch, InstantSearch.js, source-of-truth checks, prop shapes, widgets, hooks, connectors, SSR, middleware, custom widgets, and framework anti-patterns.",{"type":56,"tag":81,"props":114,"children":115},{},[116],{"type":61,"value":117},"Use this skill as the customer-readiness layer around the official skill: clarify the search journey, data contract, refinements, URL behavior, event attribution, mobile interaction, accessibility, and QA.",{"type":56,"tag":81,"props":119,"children":120},{},[121,123,129,131,137],{"type":61,"value":122},"Use public ",{"type":56,"tag":97,"props":124,"children":126},{"className":125},[],[127],{"type":61,"value":128},"academy.algolia.com",{"type":61,"value":130}," for learning alignment and public ",{"type":56,"tag":97,"props":132,"children":134},{"className":133},[],[135],{"type":61,"value":136},"algolia.com\u002Fdoc",{"type":61,"value":138}," for current implementation guidance when source-backed context is needed.",{"type":56,"tag":81,"props":140,"children":141},{},[142,144,150,152,158,159,165,166,172,173,179,181,187],{"type":61,"value":143},"When an Academy metadata reference pack is available, use only its ",{"type":56,"tag":97,"props":145,"children":147},{"className":146},[],[148],{"type":61,"value":149},"title",{"type":61,"value":151},", ",{"type":56,"tag":97,"props":153,"children":155},{"className":154},[],[156],{"type":61,"value":157},"url",{"type":61,"value":151},{"type":56,"tag":97,"props":160,"children":162},{"className":161},[],[163],{"type":61,"value":164},"course",{"type":61,"value":151},{"type":56,"tag":97,"props":167,"children":169},{"className":168},[],[170],{"type":61,"value":171},"module",{"type":61,"value":151},{"type":56,"tag":97,"props":174,"children":176},{"className":175},[],[177],{"type":61,"value":178},"learning_objectives",{"type":61,"value":180},", and ",{"type":56,"tag":97,"props":182,"children":184},{"className":183},[],[185],{"type":61,"value":186},"updated_at",{"type":61,"value":188}," fields for structure. If it is stale or no match exists, fall back to live Academy\u002Fdocs lookup. Do not treat cached metadata as course content or implementation authority.",{"type":56,"tag":81,"props":190,"children":191},{},[192],{"type":61,"value":193},"Do not require custom Academy\u002Fdocs access; use customer-provided sources only as optional context.",{"type":56,"tag":81,"props":195,"children":196},{},[197],{"type":61,"value":198},"When live Algolia data, analytics, index inspection, settings changes, or account actions are needed, use Algolia MCP, the Algolia CLI, or official Algolia skills for the live operation, then apply this skill to interpret results and validate the customer-ready implementation path.",{"type":56,"tag":81,"props":200,"children":201},{},[202],{"type":61,"value":203},"Produce implementation notes or code plus a browser-verifiable QA checklist.",{"type":56,"tag":70,"props":205,"children":207},{"id":206},"official-companion-skills",[208],{"type":61,"value":209},"Official Companion Skills",{"type":56,"tag":77,"props":211,"children":212},{},[213,232,244,256],{"type":56,"tag":81,"props":214,"children":215},{},[216,218,223,225,230],{"type":61,"value":217},"Use official ",{"type":56,"tag":97,"props":219,"children":221},{"className":220},[],[222],{"type":61,"value":102},{"type":61,"value":224}," from ",{"type":56,"tag":97,"props":226,"children":228},{"className":227},[],[229],{"type":61,"value":33},{"type":61,"value":231}," for production implementation details, source-of-truth checks, widget\u002Fhook\u002Fconnector behavior, framework-specific anti-patterns, and code-level InstantSearch or Autocomplete work.",{"type":56,"tag":81,"props":233,"children":234},{},[235,236,242],{"type":61,"value":217},{"type":56,"tag":97,"props":237,"children":239},{"className":238},[],[240],{"type":61,"value":241},"algolia-mcp",{"type":61,"value":243}," when live index schema, sample hits, facet values, or analytics should shape the UI.",{"type":56,"tag":81,"props":245,"children":246},{},[247,249,254],{"type":61,"value":248},"Use this skill before the official ",{"type":56,"tag":97,"props":250,"children":252},{"className":251},[],[253],{"type":61,"value":102},{"type":61,"value":255}," skill to frame the customer journey and after the official skill to validate UX, routing, event behavior, mobile behavior, and launch readiness.",{"type":56,"tag":81,"props":257,"children":258},{},[259,261,267,269,275,276,282,284,290],{"type":61,"value":260},"Use ",{"type":56,"tag":97,"props":262,"children":264},{"className":263},[],[265],{"type":61,"value":266},"algolia-events-insights",{"type":61,"value":268}," alongside this skill when click\u002Fconversion attribution, Insights middleware, ",{"type":56,"tag":97,"props":270,"children":272},{"className":271},[],[273],{"type":61,"value":274},"queryID",{"type":61,"value":151},{"type":56,"tag":97,"props":277,"children":279},{"className":278},[],[280],{"type":61,"value":281},"objectID",{"type":61,"value":283},", position, or ",{"type":56,"tag":97,"props":285,"children":287},{"className":286},[],[288],{"type":61,"value":289},"userToken",{"type":61,"value":291}," behavior affects the UI.",{"type":56,"tag":70,"props":293,"children":295},{"id":294},"source-of-truth-rules",[296],{"type":61,"value":297},"Source-Of-Truth Rules",{"type":56,"tag":77,"props":299,"children":300},{},[301,313,341,346,351],{"type":56,"tag":81,"props":302,"children":303},{},[304,306,311],{"type":61,"value":305},"Use the official ",{"type":56,"tag":97,"props":307,"children":309},{"className":308},[],[310],{"type":61,"value":102},{"type":61,"value":312}," skill for framework-specific widgets, hooks, connectors, SSR, middleware, routing, and source-of-truth checks.",{"type":56,"tag":81,"props":314,"children":315},{},[316,318,324,325,331,333,339],{"type":61,"value":317},"Follow the official skill's discovery pattern: identify the library (",{"type":56,"tag":97,"props":319,"children":321},{"className":320},[],[322],{"type":61,"value":323},"react-instantsearch",{"type":61,"value":151},{"type":56,"tag":97,"props":326,"children":328},{"className":327},[],[329],{"type":61,"value":330},"vue-instantsearch",{"type":61,"value":332},", or ",{"type":56,"tag":97,"props":334,"children":336},{"className":335},[],[337],{"type":61,"value":338},"instantsearch.js",{"type":61,"value":340},"), inspect existing setup, inspect installed types and docs before writing unfamiliar APIs, and read the matching official reference directory before implementation.",{"type":56,"tag":81,"props":342,"children":343},{},[344],{"type":61,"value":345},"Inspect the project dependencies and installed types before assuming package names or prop shapes.",{"type":56,"tag":81,"props":347,"children":348},{},[349],{"type":61,"value":350},"Verify current docs before writing SSR, routing, middleware, or event code that is not already present in the project.",{"type":56,"tag":81,"props":352,"children":353},{},[354],{"type":61,"value":355},"For net-new implementations, avoid treating UI as isolated from data and events. Confirm that a data contract and event taxonomy exist, or create minimal versions and mark them provisional.",{"type":56,"tag":70,"props":357,"children":359},{"id":358},"workflow",[360],{"type":61,"value":361},"Workflow",{"type":56,"tag":363,"props":364,"children":365},"ol",{},[366,379,391,396,420,425,430,435,440],{"type":56,"tag":81,"props":367,"children":368},{},[369,371,377],{"type":61,"value":370},"Read ",{"type":56,"tag":97,"props":372,"children":374},{"className":373},[],[375],{"type":61,"value":376},"references\u002Finstantsearch-guide.md",{"type":61,"value":378}," before implementing or reviewing UI code.",{"type":56,"tag":81,"props":380,"children":381},{},[382,384,389],{"type":61,"value":383},"Confirm the framework and InstantSearch package already used by the project. If code will be written, invoke the official ",{"type":56,"tag":97,"props":385,"children":387},{"className":386},[],[388],{"type":61,"value":102},{"type":61,"value":390}," skill or follow its source-of-truth checks before choosing APIs.",{"type":56,"tag":81,"props":392,"children":393},{},[394],{"type":61,"value":395},"Confirm the data contract: index names, replicas, display attributes, facets, ranking fields, secured filters, and event attribution fields.",{"type":56,"tag":81,"props":397,"children":398},{},[399,401,406,407,412,413,418],{"type":61,"value":400},"Confirm the event taxonomy: result clicks, conversion path, ",{"type":56,"tag":97,"props":402,"children":404},{"className":403},[],[405],{"type":61,"value":289},{"type":61,"value":151},{"type":56,"tag":97,"props":408,"children":410},{"className":409},[],[411],{"type":61,"value":274},{"type":61,"value":151},{"type":56,"tag":97,"props":414,"children":416},{"className":415},[],[417],{"type":61,"value":281},{"type":61,"value":419},", index, and position handling.",{"type":56,"tag":81,"props":421,"children":422},{},[423],{"type":61,"value":424},"Define the result-page job: search results page, category\u002Fbrowse page, federated page, internal lookup, marketplace listing, or support\u002Fdocumentation search.",{"type":56,"tag":81,"props":426,"children":427},{},[428],{"type":61,"value":429},"Preserve existing design-system conventions and accessibility patterns.",{"type":56,"tag":81,"props":431,"children":432},{},[433],{"type":61,"value":434},"Teach the customer that Autocomplete helps users choose what to search for, while InstantSearch helps users explore, refine, recover, and act on results after the search.",{"type":56,"tag":81,"props":436,"children":437},{},[438],{"type":61,"value":439},"Wire routing, filters, sort, active refinement feedback, clear refinements, pagination\u002Finfinite hits, loading states, empty states, and events deliberately. A working search box alone is not a complete search experience.",{"type":56,"tag":81,"props":441,"children":442},{},[443],{"type":61,"value":444},"Verify the UI in a browser when possible, including empty states, slow\u002Ferror states, mobile filter behavior, keyboard use, URL restoration, and event readiness.",{"type":56,"tag":70,"props":446,"children":448},{"id":447},"questions-to-ask",[449],{"type":61,"value":450},"Questions To Ask",{"type":56,"tag":77,"props":452,"children":453},{},[454,459,464,469,474,479,484,489,494,499,504],{"type":56,"tag":81,"props":455,"children":456},{},[457],{"type":61,"value":458},"Is this a search page, category browse page, federated experience, or internal tool?",{"type":56,"tag":81,"props":460,"children":461},{},[462],{"type":61,"value":463},"Which index and replicas power each view?",{"type":56,"tag":81,"props":465,"children":466},{},[467],{"type":61,"value":468},"Which refinements are user-visible versus applied silently?",{"type":56,"tag":81,"props":470,"children":471},{},[472],{"type":61,"value":473},"Which filters are actually useful to the user for this record type, and are those attributes facetable in the index?",{"type":56,"tag":81,"props":475,"children":476},{},[477],{"type":61,"value":478},"How will users see and clear active refinements?",{"type":56,"tag":81,"props":480,"children":481},{},[482],{"type":61,"value":483},"Should URL routing preserve query and filters?",{"type":56,"tag":81,"props":485,"children":486},{},[487],{"type":61,"value":488},"Should the first page load with an empty query, category filter, route-derived query, or user-entered query?",{"type":56,"tag":81,"props":490,"children":491},{},[492],{"type":61,"value":493},"Is pagination, infinite loading, or \"load more\" the best continuation pattern for the context?",{"type":56,"tag":81,"props":495,"children":496},{},[497],{"type":61,"value":498},"Is click\u002Fconversion attribution required for analytics or personalization?",{"type":56,"tag":81,"props":500,"children":501},{},[502],{"type":61,"value":503},"What is the expected mobile filter\u002Fsort interaction?",{"type":56,"tag":81,"props":505,"children":506},{},[507],{"type":61,"value":508},"Does this route need SSR, server components, static generation, or client-only rendering constraints?",{"type":56,"tag":70,"props":510,"children":512},{"id":511},"implementation-standards",[513],{"type":61,"value":514},"Implementation Standards",{"type":56,"tag":77,"props":516,"children":517},{},[518,523,535,548,560,565,570,575,580,585,590,595],{"type":56,"tag":81,"props":519,"children":520},{},[521],{"type":61,"value":522},"Use InstantSearch widgets\u002Fhooks\u002Fconnectors appropriate to the local framework.",{"type":56,"tag":81,"props":524,"children":525},{},[526,528,533],{"type":61,"value":527},"When code is required, use the official ",{"type":56,"tag":97,"props":529,"children":531},{"className":530},[],[532],{"type":61,"value":102},{"type":61,"value":534}," skill for the exact framework API and then apply this skill's readiness checks to the result.",{"type":56,"tag":81,"props":536,"children":537},{},[538,540,546],{"type":61,"value":539},"Keep ",{"type":56,"tag":97,"props":541,"children":543},{"className":542},[],[544],{"type":61,"value":545},"searchClient",{"type":61,"value":547},", index name, routing, and environment configuration out of hard-coded UI leaf components when the project has config patterns.",{"type":56,"tag":81,"props":549,"children":550},{},[551,552,558],{"type":61,"value":260},{"type":56,"tag":97,"props":553,"children":555},{"className":554},[],[556],{"type":61,"value":557},"configure",{"type":61,"value":559}," for query parameters and default filters that belong to the search state.",{"type":56,"tag":81,"props":561,"children":562},{},[563],{"type":61,"value":564},"Include enough visible structure for users to understand, refine, recover, and continue: results, filters, active refinements, clear refinements, sort when needed, pagination or infinite loading, and empty\u002Fno-results recovery.",{"type":56,"tag":81,"props":566,"children":567},{},[568],{"type":61,"value":569},"Make silent filters legible in the product design or documented in the implementation handoff. Users should not be confused by invisible constraints.",{"type":56,"tag":81,"props":571,"children":572},{},[573],{"type":61,"value":574},"Match continuation pattern to intent: pagination for comparison and return-to-position, infinite hits for discovery, and load-more when users need both control and flow.",{"type":56,"tag":81,"props":576,"children":577},{},[578],{"type":61,"value":579},"Treat mobile filters as a first-class interaction, not a compressed desktop sidebar.",{"type":56,"tag":81,"props":581,"children":582},{},[583],{"type":61,"value":584},"Render accessible hit cards with stable objectID-aware interactions.",{"type":56,"tag":81,"props":586,"children":587},{},[588],{"type":61,"value":589},"Enable Insights middleware or event helpers when events are in scope.",{"type":56,"tag":81,"props":591,"children":592},{},[593],{"type":61,"value":594},"Do not mutate Algolia hits in ways that break objectID, queryID, position, or event attribution.",{"type":56,"tag":81,"props":596,"children":597},{},[598],{"type":61,"value":599},"For SSR\u002Frouting work, verify hydration, URL state restoration, and back\u002Fforward behavior using the official skill's SSR and routing guidance.",{"type":56,"tag":70,"props":601,"children":603},{"id":602},"anti-patterns",[604],{"type":61,"value":605},"Anti-Patterns",{"type":56,"tag":77,"props":607,"children":608},{},[609,614,626,631,636,641,646,651,656,661,666],{"type":56,"tag":81,"props":610,"children":611},{},[612],{"type":61,"value":613},"Treating a search input plus hits as a complete experience while ignoring filters, empty states, routing, mobile behavior, and events.",{"type":56,"tag":81,"props":615,"children":616},{},[617,619,624],{"type":61,"value":618},"Re-implementing official InstantSearch API guidance from memory instead of using the official ",{"type":56,"tag":97,"props":620,"children":622},{"className":621},[],[623],{"type":61,"value":102},{"type":61,"value":625}," skill and installed types.",{"type":56,"tag":81,"props":627,"children":628},{},[629],{"type":61,"value":630},"Adding filters without active refinement feedback or a clear-all path.",{"type":56,"tag":81,"props":632,"children":633},{},[634],{"type":61,"value":635},"Choosing facets because they exist in the data instead of because users need them to narrow results.",{"type":56,"tag":81,"props":637,"children":638},{},[639],{"type":61,"value":640},"Showing facets with confusing labels, empty values, unstable ordering, or no count\u002Frange context.",{"type":56,"tag":81,"props":642,"children":643},{},[644],{"type":61,"value":645},"Hard-coding index names, app IDs, or environment-specific values inside reusable UI leaf components.",{"type":56,"tag":81,"props":647,"children":648},{},[649],{"type":61,"value":650},"Client-side sorting or filtering Algolia hits in ways that desynchronize facets, positions, pagination, or analytics.",{"type":56,"tag":81,"props":652,"children":653},{},[654],{"type":61,"value":655},"Styling InstantSearch markup without checking generated class names or accessibility behavior.",{"type":56,"tag":81,"props":657,"children":658},{},[659],{"type":61,"value":660},"Shipping a UI that cannot be verified in a browser with realistic records.",{"type":56,"tag":81,"props":662,"children":663},{},[664],{"type":61,"value":665},"Shipping desktop-only filter behavior and assuming mobile users can recover.",{"type":56,"tag":81,"props":667,"children":668},{},[669],{"type":61,"value":670},"Enabling URL routing without validating reload, sharing, and back\u002Fforward behavior.",{"type":56,"tag":70,"props":672,"children":674},{"id":673},"completion-checkpoints",[675],{"type":61,"value":676},"Completion Checkpoints",{"type":56,"tag":64,"props":678,"children":679},{},[680],{"type":61,"value":681},"Before calling the UI ready, or when handing off a prototype with follow-ups, state whether these checkpoints are satisfied, deferred, or unknown:",{"type":56,"tag":77,"props":683,"children":684},{},[685,690,695,707,739,744],{"type":56,"tag":81,"props":686,"children":687},{},[688],{"type":61,"value":689},"Referenced data contract or explicit minimal demo data contract.",{"type":56,"tag":81,"props":691,"children":692},{},[693],{"type":61,"value":694},"Referenced event taxonomy or explicit user-approved event deferral.",{"type":56,"tag":81,"props":696,"children":697},{},[698,700,705],{"type":61,"value":699},"Official ",{"type":56,"tag":97,"props":701,"children":703},{"className":702},[],[704],{"type":61,"value":102},{"type":61,"value":706}," skill or current docs\u002Ftypes used for framework-specific API choices.",{"type":56,"tag":81,"props":708,"children":709},{},[710,712,717,718,724,725,730,732,737],{"type":61,"value":711},"Hit components preserve ",{"type":56,"tag":97,"props":713,"children":715},{"className":714},[],[716],{"type":61,"value":281},{"type":61,"value":151},{"type":56,"tag":97,"props":719,"children":721},{"className":720},[],[722],{"type":61,"value":723},"index",{"type":61,"value":151},{"type":56,"tag":97,"props":726,"children":728},{"className":727},[],[729],{"type":61,"value":274},{"type":61,"value":731},", position, and ",{"type":56,"tag":97,"props":733,"children":735},{"className":734},[],[736],{"type":61,"value":289},{"type":61,"value":738}," for event wiring.",{"type":56,"tag":81,"props":740,"children":741},{},[742],{"type":61,"value":743},"Facets and filters exist in the index contract.",{"type":56,"tag":81,"props":745,"children":746},{},[747],{"type":61,"value":748},"Browser QA covers query, filters, active refinements, clear refinements, sort, pagination or infinite loading, empty states, loading\u002Ferror states, routing when enabled, mobile behavior, keyboard behavior, and event readiness.",{"type":56,"tag":70,"props":750,"children":752},{"id":751},"academy-and-customer-education-alignment",[753],{"type":61,"value":754},"Academy And Customer Education Alignment",{"type":56,"tag":64,"props":756,"children":757},{},[758],{"type":61,"value":759},"When source-backed guidance is needed, search public Academy sources for UI learning objectives and public Algolia docs for InstantSearch, routing, widgets, filters, facets, UI state, SSR, and event attribution. Use source guidance to choose maturity level, use-case bundle, guided prompts, and QA artifacts. Keep the skill procedural and source-aligned rather than embedding stale API documentation.",{"type":56,"tag":70,"props":761,"children":763},{"id":762},"maturity-behavior",[764],{"type":61,"value":765},"Maturity Behavior",{"type":56,"tag":77,"props":767,"children":768},{},[769,774,779,784],{"type":56,"tag":81,"props":770,"children":771},{},[772],{"type":61,"value":773},"Beginner implementation: build the smallest complete search or browse experience with query, hits, filters, loading, empty state, and clear index configuration.",{"type":56,"tag":81,"props":775,"children":776},{},[777],{"type":61,"value":778},"Production readiness: validate routing, mobile filters, accessibility, API-key boundaries, event attribution, error states, and environment configuration.",{"type":56,"tag":81,"props":780,"children":781},{},[782],{"type":61,"value":783},"Optimization: review query analytics, facet usage, performance, UI friction, A\u002FB testing, and relevance handoff to index configuration.",{"type":56,"tag":81,"props":785,"children":786},{},[787],{"type":61,"value":788},"AI readiness: confirm the UI preserves user context, objectID, index, queryID, position, and conversion paths needed by AI and personalization features.",{"type":56,"tag":70,"props":790,"children":792},{"id":791},"output-contract",[793],{"type":61,"value":794},"Output Contract",{"type":56,"tag":64,"props":796,"children":797},{},[798],{"type":61,"value":799},"Return implemented code or a review with file references, plus an Official Skill Usage Note, Customer UI Plan, Data\u002FEvent Readiness Notes, and concise QA checklist covering query, filters, active refinements, sort, pagination\u002Finfinite loading, empty states, routing, mobile behavior, accessibility, and events.",{"items":801,"total":961},[802,818,835,848,861,875,888,900,918,928,939,949],{"slug":803,"name":803,"fn":804,"description":805,"org":806,"tags":807,"stars":815,"repoUrl":816,"updatedAt":817},"algolia-docsearch-mcp","search developer documentation with Algolia","Use this skill when the user asks about public developer documentation, SDKs, APIs, libraries, frameworks, setup, configuration, or code examples. Fetch current docs from Algolia DocSearch MCP and cite source URLs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[808,809,812,814],{"name":9,"slug":8,"type":15},{"name":810,"slug":811,"type":15},"Documentation","documentation",{"name":813,"slug":40,"type":15},"MCP",{"name":27,"slug":28,"type":15},4365,"https:\u002F\u002Fgithub.com\u002Falgolia\u002Fdocsearch","2026-08-01T06:06:11.572314",{"slug":819,"name":819,"fn":820,"description":821,"org":822,"tags":823,"stars":32,"repoUrl":33,"updatedAt":834},"algobot-cli","build conversational AI with Algolia","Use for anything AI\u002Fagent\u002Fconversational built on Algolia: algobot CLI, Agent Studio, RAG systems, conversational product discovery, genAI content generation from search results (carousels, descriptions, headers), chatbots or recommendation agents using Algolia as retrieval, config-as-code workflows, multi-environment deploy (dev\u002Fstaging\u002Fprod), memory and personalization, MCP tool integrations, conversation history \u002F GDPR retention, or adding a chat widget alongside InstantSearch. Trigger on: \"algobot\", \"Agent Studio\", \"RAG with Algolia\", \"conversational experience\", \"AI agent\" + Algolia, \"genAI carousel\", \"chat widget\", or building AI features on top of Algolia search. Do NOT use for raw index ops (records, synonyms, settings) — use algolia-cli. Do NOT use for pure frontend search UI (InstantSearch, autocomplete) with no AI\u002Fagent layer.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[824,827,830,833],{"name":825,"slug":826,"type":15},"Agents","agents",{"name":828,"slug":829,"type":15},"Automation","automation",{"name":831,"slug":832,"type":15},"LLM","llm",{"name":27,"slug":28,"type":15},"2026-07-12T08:27:37.649724",{"slug":836,"name":836,"fn":837,"description":838,"org":839,"tags":840,"stars":32,"repoUrl":33,"updatedAt":847},"algolia-agent-studio","build conversational agents with Algolia Agent Studio","Product-specific Algolia Agent Studio implementation, validation, and optimization guidance. Use when planning, building, integrating, or auditing Agent Studio agents, AI-powered conversational experiences, LLM provider setup, Algolia Search tools, client-side tools, MCP tools, memory, prompting, conversations, turn context, caching, analytics, feedback, authentication, approved domains, guardrails, or tool security. Do NOT use for live Agent Studio configuration, dry runs, publish\u002Fdeploy actions, or config-as-code operations; use the official algobot-cli skill instead. Do NOT use for generic non-Algolia RAG or chatbot architecture unless Agent Studio is the target product.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[841,842,845,846],{"name":825,"slug":826,"type":15},{"name":843,"slug":844,"type":15},"AI","ai",{"name":9,"slug":8,"type":15},{"name":27,"slug":28,"type":15},"2026-08-01T06:06:28.033767",{"slug":849,"name":849,"fn":850,"description":851,"org":852,"tags":853,"stars":32,"repoUrl":33,"updatedAt":860},"algolia-autocomplete","build Algolia autocomplete and query suggestions","Build and review Algolia Autocomplete and query suggestion experiences. Use when planning or implementing typeahead, query suggestions, recent searches, popular searches, federated autocomplete panels, product\u002Fcontent suggestions, detached mobile mode, plugins, keyboard navigation, insights events, or Autocomplete integration with InstantSearch. For net-new search or ecommerce builds, start with algolia-discovery-planning, which loads algolia-search-implementation so source strategy, data contract, and event taxonomy decisions are visible before autocomplete is marked ready. Do NOT use for full search results pages, browse pages, filters, pagination, or current refinements; use algolia-instantsearch-ui instead. Do NOT use for choosing between Algolia UI libraries; use algolia-ui-libraries. Do NOT use as the source of truth for current Autocomplete package APIs; use the official instantsearch skill and current docs alongside this customer-readiness skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[854,855,856,857],{"name":9,"slug":8,"type":15},{"name":30,"slug":31,"type":15},{"name":27,"slug":28,"type":15},{"name":858,"slug":859,"type":15},"UI Components","ui-components","2026-08-01T06:06:29.968123",{"slug":862,"name":862,"fn":863,"description":864,"org":865,"tags":866,"stars":32,"repoUrl":33,"updatedAt":874},"algolia-cli","manage Algolia indices and accounts","Use this skill whenever a user wants to execute operations against Algolia indices or accounts — deleting records, copying\u002Fmigrating indices, backing up data, importing\u002Fexporting records, managing API keys, editing synonyms, configuring rules, changing settings like facets, clearing indices, or automating Algolia in CI\u002FCD pipelines. The key signal is that the user wants to *act on* their Algolia data or configuration (server-side \u002F backend \u002F admin operations), regardless of whether they mention \"CLI\" or \"command line.\" If someone names a specific Algolia index and wants to change, move, query, or manage it, use this skill. Do NOT use for frontend search UI work (InstantSearch, React components, autocomplete widgets), Algolia dashboard GUI questions, or evaluating Algolia vs. other providers.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[867,870,873],{"name":868,"slug":869,"type":15},"CLI","cli",{"name":871,"slug":872,"type":15},"Data Engineering","data-engineering",{"name":27,"slug":28,"type":15},"2026-07-12T08:27:35.085246",{"slug":876,"name":876,"fn":877,"description":878,"org":879,"tags":880,"stars":32,"repoUrl":33,"updatedAt":887},"algolia-crawler","crawl websites into Algolia indices","Use this skill whenever a user wants to crawl one or more web pages or a whole site and turn them into an Algolia index using the Algolia CLI — especially for RAG, AI search, semantic search, or Agent Studio retrieval. Triggers: \"index my website\u002Fdocs with Algolia\", \"set up the Algolia Crawler\", \"crawl this page for RAG\", \"scrape my site into Algolia\", \"build a knowledge base for my AI agent from these URLs\", writing or debugging a crawler recordExtractor, or handling JavaScript-rendered pages that won't index. It guides ingestion end-to-end with `algolia crawler` commands: inspect the page, write a RAG-optimized recordExtractor, validate with `algolia crawler test` BEFORE indexing, apply index settings explicitly, then reindex. Do NOT use for building the chatbot\u002Fagent layer itself (use algobot-cli), raw record\u002Fsynonym\u002Fsettings ops on an existing index (use algolia-cli), frontend search UI (use instantsearch), or read-only search\u002Fanalytics (use algolia-mcp).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[881,882,883,884],{"name":828,"slug":829,"type":15},{"name":871,"slug":872,"type":15},{"name":27,"slug":28,"type":15},{"name":885,"slug":886,"type":15},"Web Scraping","web-scraping","2026-07-12T08:27:40.981109",{"slug":889,"name":889,"fn":890,"description":891,"org":892,"tags":893,"stars":32,"repoUrl":33,"updatedAt":899},"algolia-data-modeling","design Algolia data models and indices","Algolia data modeling and indexing guidance. Use before or alongside indexing records or building Algolia search UI for net-new search, browse, autocomplete, ecommerce, personalization, Dynamic Re-Ranking, recommendations, or analytics-aware implementations. Makes record shape, objectID, display fields, facets, ranking fields, and event attribution explicit decisions. Use for records, variants, SKUs, indices, replicas, searchable and faceting attributes, denormalization, merchandising fields, timestamps, inventory, event attribution, indexing pipelines, partial updates, secured data, multi-language or multi-region strategies, and migrations. Do NOT use for live imports, exports, record mutations, settings changes, or account actions; use algolia-cli or algolia-mcp. Do NOT use for frontend UI implementation; use algolia-instantsearch-ui, algolia-autocomplete, algolia-ui-libraries, or the official instantsearch skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[894,895,898],{"name":9,"slug":8,"type":15},{"name":896,"slug":897,"type":15},"Data Modeling","data-modeling",{"name":27,"slug":28,"type":15},"2026-08-01T06:06:01.500756",{"slug":901,"name":901,"fn":902,"description":903,"org":904,"tags":905,"stars":32,"repoUrl":33,"updatedAt":917},"algolia-discovery-planning","plan and audit Algolia search implementations","START HERE for any non-trivial Algolia work — building, adding, migrating, redesigning, auditing, or configuring search, browse, autocomplete, indexing, relevance, recommendations, personalization, merchandising, events, or analytics. Invoke this FIRST even when the task already seems scoped or the user names one specific feature (e.g. \"add InstantSearch\", \"build a storefront search\"): its job is to map the request to the full Algolia implementation lifecycle and load every companion skill each in-scope phase needs (algolia-search-implementation, algolia-data-modeling, algolia-index-configuration, algolia-ui-libraries, algolia-instantsearch-ui, algolia-autocomplete, algolia-events-insights, algolia-neuralsearch, algolia-agent-studio, algolia-release-qa) rather than jumping straight into a single skill. This skill plans and orchestrates; the focused companion skills and the official Algolia skills execute. Do NOT use for live account inspection or write actions; use algolia-mcp or algolia-cli for those.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[906,907,910,913,916],{"name":9,"slug":8,"type":15},{"name":908,"slug":909,"type":15},"Analytics","analytics",{"name":911,"slug":912,"type":15},"Configuration","configuration",{"name":914,"slug":915,"type":15},"Personalization","personalization",{"name":27,"slug":28,"type":15},"2026-08-01T06:06:03.021452",{"slug":266,"name":266,"fn":919,"description":920,"org":921,"tags":922,"stars":32,"repoUrl":33,"updatedAt":927},"instrument Algolia events for analytics","Algolia event instrumentation guidance for Insights, analytics, personalization, Dynamic Re-Ranking, Recommend, and merchandising feedback loops. Use for search, autocomplete, browse, ecommerce, personalization, recommendations, or analytics instrumentation. Makes event decisions explicit before an Algolia UI is considered ready. Use when implementing or auditing clickedObjectIDsAfterSearch, convertedObjectIDsAfterSearch, viewedObjectIDs, addedToCartObjectIDsAfterSearch, purchasedObjectIDsAfterSearch, userToken, queryID, eventName, eventSubtype, or frontend\u002Fbackend event pipelines. Do NOT use for live analytics retrieval, top-query inspection, or account-aware diagnostics; use algolia-mcp. Do NOT use for framework-specific InstantSearch or Autocomplete APIs; use the official instantsearch skill alongside this planning and validation skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[923,924,925,926],{"name":9,"slug":8,"type":15},{"name":908,"slug":909,"type":15},{"name":914,"slug":915,"type":15},{"name":27,"slug":28,"type":15},"2026-08-01T06:06:02.009712",{"slug":929,"name":929,"fn":930,"description":931,"org":932,"tags":933,"stars":32,"repoUrl":33,"updatedAt":938},"algolia-index-configuration","configure Algolia index settings and relevance","Algolia index settings and relevance configuration guidance. Use when configuring searchableAttributes, attributesForFaceting, customRanking, ranking, replicas, virtual replicas, rules, synonyms, typo tolerance, distinct, filters, optional filters, merchandising, browse\u002Fcategory relevance, or A\u002FB-testable relevance changes. Do NOT use for live settings writes, backups, copies, or operational account tasks; use algolia-cli or algolia-mcp instead. Do NOT use for record-shape or variant strategy; use algolia-data-modeling instead.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[934,935,936,937],{"name":9,"slug":8,"type":15},{"name":911,"slug":912,"type":15},{"name":896,"slug":897,"type":15},{"name":27,"slug":28,"type":15},"2026-08-01T06:06:34.19163",{"slug":4,"name":4,"fn":5,"description":6,"org":940,"tags":941,"stars":32,"repoUrl":33,"updatedAt":34},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[942,943,944,945,946,947,948],{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"name":30,"slug":31,"type":15},{"name":24,"slug":25,"type":15},{"name":17,"slug":18,"type":15},{"name":27,"slug":28,"type":15},{"name":20,"slug":21,"type":15},{"slug":241,"name":241,"fn":950,"description":951,"org":952,"tags":953,"stars":32,"repoUrl":33,"updatedAt":960},"search Algolia indices and retrieve analytics","Search Algolia indices via the Algolia MCP server, retrieve analytics (top searches, no-result rates, click positions, user counts), and get product recommendations (bought-together, related, trending). Triggers on search, indexing, analytics, Algolia, recommendations, MCP.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[954,955,958,959],{"name":908,"slug":909,"type":15},{"name":956,"slug":957,"type":15},"API Development","api-development",{"name":813,"slug":40,"type":15},{"name":27,"slug":28,"type":15},"2026-07-12T08:27:36.376387",19,{"items":963,"total":1012},[964,971,978,985,991,998,1004],{"slug":819,"name":819,"fn":820,"description":821,"org":965,"tags":966,"stars":32,"repoUrl":33,"updatedAt":834},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[967,968,969,970],{"name":825,"slug":826,"type":15},{"name":828,"slug":829,"type":15},{"name":831,"slug":832,"type":15},{"name":27,"slug":28,"type":15},{"slug":836,"name":836,"fn":837,"description":838,"org":972,"tags":973,"stars":32,"repoUrl":33,"updatedAt":847},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[974,975,976,977],{"name":825,"slug":826,"type":15},{"name":843,"slug":844,"type":15},{"name":9,"slug":8,"type":15},{"name":27,"slug":28,"type":15},{"slug":849,"name":849,"fn":850,"description":851,"org":979,"tags":980,"stars":32,"repoUrl":33,"updatedAt":860},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[981,982,983,984],{"name":9,"slug":8,"type":15},{"name":30,"slug":31,"type":15},{"name":27,"slug":28,"type":15},{"name":858,"slug":859,"type":15},{"slug":862,"name":862,"fn":863,"description":864,"org":986,"tags":987,"stars":32,"repoUrl":33,"updatedAt":874},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[988,989,990],{"name":868,"slug":869,"type":15},{"name":871,"slug":872,"type":15},{"name":27,"slug":28,"type":15},{"slug":876,"name":876,"fn":877,"description":878,"org":992,"tags":993,"stars":32,"repoUrl":33,"updatedAt":887},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[994,995,996,997],{"name":828,"slug":829,"type":15},{"name":871,"slug":872,"type":15},{"name":27,"slug":28,"type":15},{"name":885,"slug":886,"type":15},{"slug":889,"name":889,"fn":890,"description":891,"org":999,"tags":1000,"stars":32,"repoUrl":33,"updatedAt":899},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1001,1002,1003],{"name":9,"slug":8,"type":15},{"name":896,"slug":897,"type":15},{"name":27,"slug":28,"type":15},{"slug":901,"name":901,"fn":902,"description":903,"org":1005,"tags":1006,"stars":32,"repoUrl":33,"updatedAt":917},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1007,1008,1009,1010,1011],{"name":9,"slug":8,"type":15},{"name":908,"slug":909,"type":15},{"name":911,"slug":912,"type":15},{"name":914,"slug":915,"type":15},{"name":27,"slug":28,"type":15},18]