---
name: agentic-jumpstart-performance
description: Performance optimization patterns for TanStack Start with React 19, Vite, Drizzle ORM, and TanStack Query. Use when optimizing page load times, database queries, bundle size, caching, memoization, lazy loading, or when the user mentions performance, speed, optimization, or slow.
---
# Performance Optimization
## React 19 Performance Patterns
### Code Splitting with Lazy Loading
```typescript
import { lazy, Suspense } from "react";
// Lazy load heavy components
const HeavyEditor = lazy(() => import("./HeavyEditor"));
const DataVisualization = lazy(() => import("./DataVisualization"));
function Dashboard() {
return (
}>
);
}
```
### Strategic Memoization
```typescript
import { memo, useMemo, useCallback, useDeferredValue } from "react";
// Memoize expensive computations
const expensiveResult = useMemo(() => {
return processLargeDataset(data);
}, [data]);
// Memoize callbacks passed to children
const handleClick = useCallback((id: number) => {
updateItem(id);
}, [updateItem]);
// Defer non-critical updates
const deferredSearchTerm = useDeferredValue(searchTerm);
// Memoize components that receive stable props
const MemoizedList = memo(function List({ items }: { items: Item[] }) {
return items.map(item => );
});
```
### Avoid Re-renders
```typescript
// BAD: Creates new object every render
// GOOD: Define outside or memoize
const style = { color: "red" };
// BAD: Creates new function every render