Bonus step 3.5: routing animations

Let’s have a little fun with animations: We are going to add an animation on every route change. To do that, we attach an animation to the router-outlet wrapper in app.component.html: We are introducing a new observable in MiscService called page$ – it will emit every time the page changes. This is what it […]

Step 3: i18n, multi-lingual support

Fun fact: i18n stands for internationalization and can you guess what 18 means? Hint: it’s the same meaning as 11 has in a11y. We are going to support English, because everybody speaks it, and Russian, because I speak it. Let’s dive in: (deployed to We’ll need to render pages in correct language in […]

Step 2: SSR, Server-Side Rendering

Our second PR adds SSR: (deployed to SSR is pretty much obligatory for any SPA (single page application) – without the Server-Side Rendering, the search engines don’t see your app content, only an empty shell. If you checkout the first branch 01-initial-setup, run npm start and then open page source in your browser, […]