# Building Resilient Systems with Next.js > Best practices for ensuring high availability and performance in modern web applications. > > 2024-08-22 — y7.hk ## Architecture First Next.js often serves as the backbone for modern web applications. Ensuring resilience requires a mix of good architectural decisions and proper tooling. By leveraging Server Components and proper error boundaries, you can build extremely resilient web applications that degrade gracefully instead of crashing entirely. ### Static Generation vs SSR Whenever possible, default to Incremental Static Regeneration (ISR). This guarantees that even if your backend APIs are temporarily unavailable, users will still see the last successfully built version of your page.