ai-infrastructure-hugg…
Hugging Face Inference SDK patterns for TypeScript/Node.js — InferenceClient setup, chat completion, text generation, streaming,…
File-based routing, loaders, actions, defer streaming, useFetcher, error boundaries, progressive enhancement
Claude Code
$ npx -y skills add agents-inc/skills --skill web-meta-framework-remix --agent claude-code
Codex
$ npx skills add agents-inc/skills --skill web-meta-framework-remix -a codex -y
Cursor
$ npx skills add agents-inc/skills --skill web-meta-framework-remix -a cursor -y
Gemini CLI
$ npx skills add agents-inc/skills --skill web-meta-framework-remix -a gemini-cli -y
GitHub Copilot
$ npx skills add agents-inc/skills --skill web-meta-framework-remix -a github-copilot -y
OpenCode
$ npx skills add agents-inc/skills --skill web-meta-framework-remix -a opencode -y
Windsurf
$ npx skills add agents-inc/skills --skill web-meta-framework-remix -a windsurf -y
name: web-meta-framework-remix description: File-based routing, loaders, actions, defer streaming, useFetcher, error boundaries, progressive enhancement
> **Quick Guide:** A route exports a `loader` for reads and an `action` for writes, both server-only, > so a component never fetches its own data. Forms submit without JavaScript and nested routes load > in parallel. The version fact that changes every example below: React Router v7 deprecates `json()` > and `defer()` — return raw objects and raw Promises, and use `data()` only when you need a custom > status or header.
**Detailed Resources:**
---
`json()`, `defer()` and `useLoaderData<typeof loader>()`.
Read [examples/react-router-v7.md](examples/react-router-v7.md) first and translate as you go; the mapping table is below.
[examples/core.md](examples/core.md).
[examples/resource-routes.md](examples/resource-routes.md).
---
<migration_notice>
Remix has merged into React Router v7. What was planned as Remix v3 is React Router v7's "framework mode".
| Remix v2 | React Router v7 | | --------------------------------- | ---------------------------------------------------- | | `json(data)` | Return the raw object | | `json(data, { status, headers })` | `data(data, { status, headers })` | | `defer({ key: promise })` | Return `{ key: promise }` — Single Fetch streams it | | `@remix-run/node` imports | `react-router` / `@react-router/node` | | `LoaderFunctionArgs` | `Route.LoaderArgs` (generated) | | `ActionFunctionArgs` | `Route.ActionArgs` (generated) | | `useLoaderData<typeof loader>()` | `loaderData` from `Route.ComponentProps` | | `RemixServer` | `ServerRouter` | | `RemixBrowser` | `HydratedRouter` (from `react-router/dom`) | | File-based routing by default | `routes.ts`, with `@react-router/fs-routes` optional |
Migration guide: [Upgrading from Remix](https://reactrouter.com/upgrading/remix)
</migration_notice>
---
<critical_requirements>
**Export `loader` and `action` from route modules only.** The build wires them up by route, so the same export in a helper file is dead code that silently never runs.
**Throw a Response for an expected failure — 404, 403 — and let the `ErrorBoundary` render it.** Returning `null` instead pushes a null check onto every consumer and loses the status code.
**Await the data the page cannot render without, and return the rest as Promises.** Anything awaited delays the first byte; anything returned as a Promise streams in behind it.
**Name HTTP status codes as constants.** `HTTP_NOT_FOUND` says what the branch is for, where `404` has to be recognised.
</critical_requirements>
---
**Auto-detection:** loader, action, clientLoader, clientAction, useLoaderData, useActionData, useFetcher, useNavigation, useRouteError, isRouteErrorResponse, ErrorBoundary, HydrateFallback, shouldRevalidate, defer, Await, Outlet, NavLink, meta function, links function, @remix-run/node, @remix-run/react, react-router, ServerRouter, HydratedRouter, Route.LoaderArgs, Route.ComponentProps, routes.ts, Single Fetch, app/routes/
**Applies to:**
**Handled elsewhere:**
settled here
choice
The official skills marketplace for Agents Inc. 230+ skills covering everything from React and Prisma to Redis, ElevenLabs, and infrastructure tooling. Pick the skills that match your stack and install them via Claude Code. Need more control?
Hugging Face Inference SDK patterns for TypeScript/Node.js — InferenceClient setup, chat completion, text generation, streaming,…
LiteLLM proxy server setup, TypeScript client patterns via OpenAI SDK, model routing, fallbacks, load balancing, spend tracking,…
Serverless GPU compute platform for AI model deployment — web endpoints, GPU functions, model serving, and TypeScript client…
Local LLM inference with the Ollama JavaScript client -- chat, streaming, tool calling, vision, embeddings, structured output,…
Replicate SDK patterns for TypeScript/Node.js -- client setup, predictions, streaming, webhooks, file handling, model versioning,…
Together AI SDK patterns for TypeScript — client setup, chat completions, streaming, structured output, function calling,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.