Implementing Server-Side Rendering (SSR) with Angular Universal
Techniques for using Angular Universal to enable SSR, improving SEO and initial load times for Angular applications.
0 likes
7 views
Rule Content
{ "title": "Implementing Server-Side Rendering (SSR) with Angular Universal", "description": "Techniques for using Angular Universal to enable SSR, improving SEO and initial load times for Angular applications.", "category": "Angular Cursor Rules", "rules": [ { "id": "angular-ssr-setup", "description": "Set up Angular Universal to enable server-side rendering for your Angular application.", "recommendation": "Use the Angular CLI to add Angular Universal to your project: `ng add @nguniversal/express-engine`.", "severity": "error" }, { "id": "angular-ssr-hydration", "description": "Ensure proper hydration to reuse server-rendered DOM structures and maintain application state.", "recommendation": "Enable client-side hydration by adding `provideClientHydration()` in the providers array of `app.config.ts`.", "severity": "warning" }, { "id": "angular-ssr-browser-apis", "description": "Avoid using browser-specific APIs that are unavailable during server-side rendering.", "recommendation": "Use Angular's `isPlatformBrowser` function to conditionally execute browser-specific code.", "severity": "error" }, { "id": "angular-ssr-transferstate", "description": "Utilize Angular's TransferState API to transfer data from server to client, preventing redundant API calls.", "recommendation": "Implement TransferState to cache API responses during server-side rendering and reuse them on the client side.", "severity": "warning" }, { "id": "angular-ssr-preboot", "description": "Use Preboot to manage user interactions during the transition from server-side to client-side rendering.", "recommendation": "Integrate Preboot to capture and replay user events, ensuring a seamless user experience.", "severity": "warning" }, { "id": "angular-ssr-meta-tags", "description": "Set dynamic title and meta tags to improve SEO for server-side rendered pages.", "recommendation": "Use Angular's Meta and Title services to update meta tags based on page content.", "severity": "warning" }, { "id": "angular-ssr-lazy-loading", "description": "Implement lazy loading to reduce initial load time and improve performance.", "recommendation": "Configure lazy loading for feature modules in your routing setup.", "severity": "warning" }, { "id": "angular-ssr-prerendering", "description": "Use prerendering to generate static HTML for routes at build time, enhancing performance and SEO.", "recommendation": "Configure prerendering in `angular.json` and specify routes to prerender.", "severity": "warning" }, { "id": "angular-ssr-caching", "description": "Implement caching mechanisms to reduce server load and improve response times.", "recommendation": "Use caching strategies like Redis or Memcached to store frequently accessed data.", "severity": "warning" }, { "id": "angular-ssr-testing", "description": "Regularly test your server-side rendered application to ensure proper functionality and performance.", "recommendation": "Use tools like Lighthouse to audit your application's performance and SEO.", "severity": "warning" } ] }