Build the simplest correct structure
Choose native elements and predictable layout primitives before abstractions.
Implementation is not the moment design gets handed off. It is where the design is tested against real content, browser behavior, data and platform constraints—and where many of the best product decisions are made.
const product = await fetchProduct();render(product, {loading, empty, error, ready});onViewportChange(() => {adaptInteraction();});
Use real data and real constraints early so technical reality improves the interface instead of forcing a last-minute compromise.
Choose native elements and predictable layout primitives before abstractions.
Code tokens and components should map clearly to design decisions.
Loading, error, empty and success behavior should be readable in the implementation.
The baseline journey should stay robust even if advanced behavior fails.
Build semantic page and component boundaries.
Implement tokens, fluid layout and responsive rules.
Mount focused JavaScript behavior with clear ownership.
Integrate APIs/CMS/backend contracts with visible states.
Add interaction polish only after the core journey is stable.