Performance: Why deployment target shapes architecture
This concept affects how fast the app loads and responds by influencing where code runs and how resources are fetched.
Deploying Remix app with server-side rendering on a Node.js server or edge functions to send fully rendered HTML first.
Deploying Remix app only as a client-side SPA with heavy client rendering and API calls for all data.
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Client-only SPA deployment | High (many dynamic nodes) | Multiple reflows during hydration | High paint cost due to JS execution | [X] Bad |
| Server-side rendered deployment | Low (static HTML nodes) | Single reflow on load | Low paint cost, faster first paint | [OK] Good |
| Static assets served without CDN | N/A | N/A | High paint delay due to slow asset loading | [X] Bad |
| Static assets served via CDN with caching | N/A | N/A | Low paint delay, fast asset loading | [OK] Good |
remix.config.js?export default in remix.config.js.server to specify the deployment target like 'node'.export async function loader() {
const data = await fetch('https://api.example.com/data');
return data.json();
}fetch to get server data. What is the likely problem?Pass the test and this pattern moves unknown