Start independent server reads together with `Promise.all()`: ```tsx const [products, categories] = await Promise.all([ getProducts(), getCategories(), ]) ``` This prevents an avoidable sequential waterfall. Keep dependent reads sequential, deduplicate repeated reads with React `cache()`, and wrap especially slow components in `Suspense` so the route can stream its shell.
Installs into .claude/skills of the current project.
Are you the author of Nextjs Data Fetching?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-nextjs-data-fetching-5e1de3be)
Start independent server reads together with `Promise.all()`:
```tsx
const [products, categories] = await Promise.all([
getProducts(),
getCategories(),
])
```
This prevents an avoidable sequential waterfall. Keep dependent reads sequential, deduplicate repeated reads with React `cache()`, and wrap especially slow components in `Suspense` so the route can stream its shell.