Skip to content
Agentmart
Submit a tool

tanstack-query-best-practices

Use when writing, modifying, reviewing, or debugging TanStack Query code, including queries, mutations, query keys, caching, invalidation, prefetching…

Skill by Jack-WebDev

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/jack-webdev-tanstack-query-best-practices

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when writing, modifying, reviewing, or debugging TanStack Query code, including queries, mutations, query keys, caching, invalidation, prefetching, pagination, optimistic updates, server state, and TanStack Router integration.

Use cases: backend, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/tanstack-query-best-practices

What's inside

Skill name
tanstack-query-best-practices
Description
Use when writing, modifying, reviewing, or debugging TanStack Query code, including queries, mutations, query keys, caching, invalidation, prefetching, pagination, optimistic updates, server state, and TanStack Router integration.
License
MIT
Instructions
509 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Agent Skills spec issues

  • body: 509 lines (spec recommends under 500)

Files (1)

  • SKILL.md

SKILL.md (first lines)

# TanStack Query

Use this skill whenever working with `@tanstack/react-query`.

## Core Principles

Use TanStack Query for **server state**:

- API data
- database-backed data
- remote resources
- cached responses
- asynchronous mutations

Do not use TanStack Query as a replacement for normal React state.

Use React state for temporary client-only state such as:

- open/closed UI
- unsaved form values
- local selections
- temporary interaction state

Before changing query code, inspect:

- installed TanStack Query version
- existing query conventions
- `QueryClient` configuration
- query key conventions
- API/service layer
- TanStack Router integration
- existing `queryOptions` helpers
- mutation/invalidation patterns

Do not force v5 patterns into an older codebase without checking compatibility.

## Queries

Use `useQuery` for reading server data.

Prefer the object syntax:

```tsx
const usersQuery = useQuery({
  queryKey: ["users"],
  queryFn: getUsers,
})
```

The query function should:

- return a Promise
- resolve with the requested data
- throw/reject when the request fails

Do not swallow errors and return fake fallback data unless that is intentional application behavior.

Avoid:

```tsx
useEffect(() => {
  fetchUsers().then(setUsers)
}, [])
```

when the data is server state that TanStack Query should manage.

## Query Keys

Query keys define cache identity.

Every value that changes what data is fetched should normally appear in the query key.

Prefer:

```tsx
useQuery({
  queryKey: ["users", userId],
  queryFn: () => getUser(userId),
})
```

For filtered data:

```tsx
useQuery({
  queryKey: ["users", { page, status }],
  queryFn: () => getUsers({ page, status }),
})
```

Do not use:

```tsx
queryKey: ["users"]
```

when the query function secretly depends on `userId`, `page`, filters, or other changing values.

Query keys must remain serializable and predictable.

Use consistent hierarchical keys:

```tsx
["users"]
["users", "list"]
["users", "list", filters]
["users", "detail", userId]
```

## Reusable Query Definitions

When a query is reused across loaders, components, prefetching, or cache operations, prefer `queryOptions`.

```tsx
export function userQueryOptions(userId: string) {
  return queryOptions({
    queryKey: ["users", "detail", userId],
    queryFn: () => getUser(userId),

From Jack-WebDev/skills, MIT.

More from Jack-WebDev/skills

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 3, 2026 (26 days ago)
Last release
Oct 3, 2026 (26 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Jack-WebDev

Cite this page

tanstack-query-best-practices skill. Agent Mart. https://agentmart.dev/skills/jack-webdev-tanstack-query-best-practices (last updated 2026-10-24)