nextjs-caching
Installation
SKILL.md
Caching Architecture
Priority: P1 (HIGH)
Decision Map
- HTTP reads: start with
fetchcache controls (force-cache,no-store,next.revalidate, tags). For content updated a few times per day, ISR withrevalidateis often the right default. - Custom function/component caching: prefer
use cachewithcacheLife()andcacheTag()when the project uses cache components. - Per-render dedupe: use React
cache()for repeated server reads in one render pass. - Mutation invalidation:
revalidateTag()for data ownership,revalidatePath()for route-level refresh,router.refresh()for client view refresh after mutation.
Recipe
- Classify the read: static, periodically fresh, request-specific, or user-specific.
- Pick the narrowest cache: request memoization before persistent cache, tag invalidation before path-wide invalidation.
- Tag what mutates together: align tags with data ownership, not page names by habit.
- Keep personal data private: avoid broad route caching for request-specific state.
- Test stale paths: mutation -> invalidation -> refreshed UI.