Frontend
16 packages, each available for 11 model families.
client-components
Client components — when interactivity justifies the bundle, hydration correctness, browser-API access, and keeping the boundary small.
code-splitting
Splitting the bundle so users download only what they need — route and component boundaries, prefetching on intent, and avoiding waterfalls.
folder-structure
Organising a frontend codebase — colocation by feature, import boundaries enforced by tooling, naming, and the shared layer that becomes a dumping…
forms
Forms that are accessible, resilient and correct — controlled state, validation timing, submission and error handling, and never trusting the client.
hooks
React hooks — the rules that make them work, dependency correctness, custom hook design, and the ones that replace an effect entirely.
hydration
Hydration correctness — why server and client HTML must match, the values that reliably break it, and how to handle genuinely client-only content.
metadata
Page metadata — titles, descriptions, Open Graph, icons and canonical tags generated on the server, per route, without duplication or leaks.
nextjs
Next.js App Router frontend rules — routing and layouts, rendering strategy per route, images and fonts, streaming, and the client boundary.
performance
Frontend performance — Core Web Vitals, bundle discipline, image and font strategy, rendering cost, and measuring on the devices users actually have.
react
React component rules — state placement, effects that are actually necessary, keys and identity, memoisation on evidence, and rendering untrusted…
routing
Client and app routing — URL as state, nested layouts, guards that are not security, loading and error boundaries, and scroll and focus on navigation.
seo
Technical SEO for web applications — rendering strategy, canonical URLs, structured data, sitemaps, and the Core Web Vitals that affect ranking.
server-components
React Server Components — what runs where, the serialisation boundary, data fetching without waterfalls, and keeping secrets off the client.
state-management
Choosing where state lives — server cache versus client state, URL as state, and picking a library only when local state genuinely cannot serve.
tailwind
Tailwind CSS — design tokens over arbitrary values, component extraction, conditional classes without string concatenation, and dark mode.
typescript
TypeScript in a frontend codebase — strict configuration, typing the boundary where data enters, discriminated unions, and never reaching for any.