Consuming Contentful GraphQL API using Angular

In a previous post, I showed how to integrate Contentful using their REST API. Now that their GraphQL API is available in the community edition, it should be the preferred way to build your front-end and I'll show you why. This is an example of how to use Contentful to store blog posts, and create a front-end using Angular that will access the data using Contentful's GraphQL API Read More

End-to-End Testing for Angular Universal

I'm starting to write end-to-end tests for Angular Universal apps that are a front-end for a headless CMS. My goals are to test the basic functionalities of server-side rendering (SSR), run accessibility tests, and check if any errors are logged to the browser's console. Read More

Improve Angular SSR performance using Redis cache

After deploying an Angular SSR app, you might come to notice it takes a few seconds to load the initial page. The time it takes for the Universal engine to render the view is one of many factors that contribute to this delay. Let's see how caching the rendered HTML can improve load times for subsequent requests. Read More

Dynamic Sitemap for Angular Universal and Contentful

A sitemap is a file that provides search engines data about the pages of your site. If you're using a content management system (CMS), your sitemap needs to be kept up to date as you add new content/pages. In this post, we'll look at how we can create a dynamic sitemap using Angular Universal and Contentful. Read More

Using Angular as a front-end for Contentful

Contentful is a headless CMS platform that allows you to manage content and fetch it using their REST or GraphQL API. This makes up your back-end. How the front-end is built is completely up to you! In this post, I'll explain how blog posts can be managed in Contentful, and then implement an Angular front-end to consume and display them. Read More

Hello World

Welcome to the start of my blog! If you don't know already, my name's Kishan and I'm a web developer. It has been my goal to start this blog up for some time now. Why? To share my experiences as I use new frameworks, libraries, and tooling in my projects. My hope is that this will help us all (including myself) learn and encourage discussion to find the best approaches to complex problems. Read More