Frontend
Frontend на React и TypeScript: this и event loop, события DOM, рендер и анимации, компоненты и состояние, загрузка данных, формы, роутинг, сборка и качество.
Why it matters for UCP. Frontend is the second specialization of the product engineer: for one person to get a product all the way to the user, they also need the part the user sees. The stack is React + TypeScript. Backend patterns (UseCase, aggregates, CQRS) don't stretch onto it — frontend has concerns of its own.
The section is split into 20 articles. You can read them in order (platform → foundation → data and state → navigation and view → quality) or pick topics as needed.
JavaScript and the browser
- this: the call context — the four rules, arrow functions, losing this in callbacks.
- The event loop: how it works and where it bites — macro- and microtasks, execution order, long tasks.
- DOM events — bubbling and capturing, delegation, passive listeners.
- The critical rendering path — from HTML bytes to pixels: what blocks and what's expensive.
- Error handling in JS and the browser — try/catch, unhandledrejection, global handlers, monitoring.
- Animations: CSS and optimizations — transform/opacity, will-change, 60fps.
- Frontend bundling — Vite and webpack, code splitting, tree shaking.
Foundation
- Project structure and the component model — layout, the component as a unit, typing.
- Components: structure and composition — boundaries, composition, props vs state.
- TypeScript in React — typing props, generics, discriminated unions, events and refs.
- Hooks: custom hooks and useEffect traps — extracting logic, the rules of hooks, when useEffect isn't needed.
- Architecture boundaries — the import rule enforced by the linter, the public entry point of a slice, dead code.
Data and state
- State: local and server —
useState/useReducer/context, when you need a store. - Data fetching: TanStack Query — cache, invalidation, mutations.
- A client from OpenAPI — types, hooks, and mocks out of the API description.
- Error handling and Suspense — error boundaries, error states, graceful degradation.
- Forms: react-hook-form and zod — validation, consistency with the backend contract.
- State in the address bar — filters and pages in the URL, what goes to the store and what stays in the address.
Navigation and view
- Routing: React Router — routes, nesting, protected routes.
- Styling and design tokens — the approaches and their cost, tokens.
- Next.js: server rendering — SSR, server components, Server Actions.
- Static sites and MDX — building ahead of time, content in files, checks at build time.
Quality and performance
- Accessibility (a11y) — semantics, keyboard, ARIA.
- Rendering performance — memoization where it counts, code-splitting, bundle size.
- Testing: Vitest and Testing Library — behavior, not implementation.
- Environment and secrets — why there are no secrets in the browser, and how to validate settings with a schema.
Next: mobile development for the product engineer — the /mobile/ section: the same React + TypeScript packaged into native shells (web-first).
Related
- Mobile development — the same stack in native shells: PWA, Capacitor, iOS/Android.
- Product engineer — the specialization map and the path.
- Use Case Pattern (overview) — the methodology under the hood; an optional deep-dive for those who want the method.