Frontend design rounds are newer than backend ones and interviewers run them inconsistently, which is why having your own structure matters: it keeps the conversation moving and shows judgement even when the prompt is thin. The method below fits 45 to 60 minutes and every Nuxt-shaped product.
swr catalogue, SSR personalised pages, SPA behind auth), the Nitro layer as backend-for-frontend, the domain APIs or database, third parties (payments, search, email). Arrows: request paths and data flow. Say why each route group renders the way it does.useState for small shared UI state, a store for client-owned application state, a keyed cache for server data, cookies for what SSR needs, browser storage for drafts. Hydration and SSR safety come up here.HttpOnly sessions, CSP); i18n routing; error handling and monitoring; the test strategy.The tables that do most of the talking, filled in for a mid-size e-commerce prompt:
Rendering per route group
/ prerender marketing, changes with deploys, crawlable
/c/:category, /p/:slug swr 300s public, shared, changes hourly; cart badge is client-side
/search SSR, no cache query-dependent, still crawlable for popular terms
/cart, /checkout SSR, private personalised; cookie session; no shared cache
/account/** SPA (ssr: false) behind auth, not indexed, interaction-heavy
/admin/** SPA + role check internal users only
State placement
filters, page, sort URL query (parsed with a schema)
cart Pinia store, hydrated from payload, persisted in a cookie (ids + qty only)
product data, listings useFetch cache keyed by params; swr on the server
session/user nuxt-auth-utils cookie; useUserSession
locale, currency, consent cookies (SSR needs them)
checkout draft localStorage, restored after hydration
live stock on PDP SSE stream, versioned messages
Architecture sketch
[Browser] --HTTPS--> [CDN: static + swr HTML, /_nuxt immutable]
|
v
[Nuxt on Nitro] ---> [Product API / DB (Postgres, read replica)]
BFF: /api/* ---> [Search (Meilisearch)]
sessions ---> [Payments (Stripe) via server only]
cachedFunction ---> [CMS (headless) with webhooks -> cache invalidation]
|
v
[Queue/outbox tasks: emails, search reindex, image processing]
Deep-dive template, applied to search autocomplete:
Mechanism input -> 250ms debounce -> $fetch /api/search/suggest?q= with AbortSignal (cancel stale)
server: Meilisearch prefix query, cachedFunction 30s per normalised q, 10 results
UI role=combobox / listbox / option, aria-activedescendant, arrow keys, Enter, Escape,
live region "N results"; results render server-side for full-page /search?q=
Perf keyboard-first, no layout shift (reserved height), prefetch top result page on hover
Trade-offs client debounce vs server rate limit; prefix index freshness vs reindex cost;
what breaks at scale: hot terms -> cache; abusive queries -> rate limit per IP
Sharding the catalogue for a startup with 2,000 SKUs is as wrong as a single Postgres for a marketplace with 200 million. Anchor every choice to the numbers you asked for, and say what would change at ten times the load.
Thinking is fine; silence is not. "I am weighing SSR against SPA for the account area because…" keeps the interviewer inside your reasoning and lets them redirect early if they want a different focus.
"Whether search engines and link previews matter, because that decides server rendering; how much is personalised, because that decides what can be cached and shared; the accessibility level and the languages, because they shape components and routing; devices and networks, because they set the performance budget; freshness of data and whether anything is realtime; offline needs; compliance such as GDPR or payments; and the constraints nobody writes in the prompt: team size, existing stack, deadline. Those answers change the design more than the functional list does, and asking them is the first thing a senior does."
"Five minutes of requirements, three to scope, seven for the high-level picture with rendering per route and the backend-for-frontend, seven for data and API, eight for UI structure and the state placement table, ten for one deep dive the interviewer picks, five for performance, accessibility, security, i18n and observability, and the rest for trade-offs and evolution. I say the plan at the start so we can reprioritise together, I draw two tables rather than one big diagram, and I keep talking while I think so the interviewer can steer."
Nothing yet. Notes filed here show up on this page and the section overview.
Architecture & system design
What senior frontend and fullstack design rounds actually assess, the shape of a good answer, and how the pages on the design method, component and design-system architecture, application structure, rendering and data architecture, worked designs and decision records fit together.
Component architecture and design systems
Layering components from tokens to pages, headless primitives plus styled wrappers, designing props and slots APIs that scale across a team, the accessibility contract, documentation, versioning and deprecation, distribution as a package or a Nuxt layer, theming for brands, governance, and build versus adopt.