Getting started with the Gatsby blog starter kit
Creating a new website with the starter kit As I mentioned in the previous blog post, I am migrating my website over to Gatsby. Initially, I considered starting from a blank slate and build everything...
View ArticleSorting out the Gatsby folder structure for my blog
In my previous blog post, I started using the Gatsby blog starter kit, and at the end of that blog post, I listed several issues which I had to resolve. In this blog post, I will look at addressing...
View ArticleMigrating blog posts from Hugo to Gatsby
Copying the files across In yesterday’s blog post, I configured the Gatsby folder structure for my blog posts. Now that the configuration is done, I can move the content across. Since there is some...
View ArticleUsing Tailwind with Gatsby
The Gatsby blog starter kit I have used to kickstart my migration from Hugo to Gatsby makes use of the Typography plugin for some basic styling, along with a couple of custom typefaces. For my website,...
View ArticleA quick helper method to display user claims
In most of the projects that I work on, at some point during the development process, I run into a scenario where I need to inspect a user’s claims. This most often happens when I work with external...
View ArticleCheck for spammy email addresses when registering users
If you are running a website that relies on user-generated content such as a forum, review website or some other kind of community website, you may have to deal with lots of spammy content. By spammy...
View ArticleSending an anti-forgery token with Razor Pages AJAX requests
ASP.NET Razor Pages uses anti-forgery tokens to protect websites against Cross-site request forgery (CSRF) attacks. When posting information to a Razor Page handler, you need to take special care to...
View ArticleUseful ClaimsPrincipal extension methods I use in my projects
Retrieving user information from claimsTo obtain information about the current user in an ASP.NET Core application, you can look at the claims on the User property of the current HttpContext. These...
View ArticleFilter user records using extension methods
IntroductionFollowing up from my previous blog post on useful ClaimsPrincipal extension methods I use, I also make use of extension methods for common filters I use when querying my EF database...
View ArticleFilter user records using Global Query Filters
IntroductionIn my last blog post, I demonstrated how you could make use of extension methods to filter EF Core entities belonging to the currently logged-in user.That technique works great in...
View ArticleScheduling posts when publishing with Gatsby and Netlify
IntroductionLast year, I wrote a series of blog posts about migrating my blog to Gatsby. One of the frustrations with static website generators like Gatsby is that they have no proper way to schedule...
View ArticleEmbed surveys in your ASP.NET Core application with SurveyJS
IntroductionDuring a recent client engagement for a functional medicine practitioner, I had to allow users to complete a health profile questionnaire which involved around 40 health-related questions....
View ArticleUsing the LINQ OrderBy operator with null values
This blog post demonstrates a quick tip for sorting values in ascending order when some of the values can potentially be NULL.Let’s assume you have an application that allows users to capture...
View ArticleMigrating from Google Photos to Flickr
IntroductionYesterday I spoke about some of my motivations for migrating away from big tech. Today I want to discuss one of the first big moves I made, which was to move away from Google Photos.First...
View ArticleUsing HTMX with ASP.NET Core: Introduction
IntroductionA few years ago I wrote a series of blog posts around the theme of “You might not need Angular”. The premise of that series was that we want to add tiny bits of interactivity to web pages...
View ArticleUsing HTMX with ASP.NET Core: Deleting items
IntroductionIn the previous blog post, I gave a brief introduction to HTMX and demonstrated how you could add the HTMX script to an existing ASP.NET Core project. Now, let’s look at a practical example...
View ArticleUsing HTMX with ASP.NET Core: Deleting items with a page refresh
IntroductionIn the previous blog post, I demonstrated how you could delete items with AJAX using HTMX and ASP.NET Core. In this blog post, I further demonstrate how you can implement a page refresh...
View ArticleStarting Jetbrains Rider when it hangs on startup
IntroductionToday, I ran into an issue where Jetbrains Rider did not want to start up. Somehow it got stuck on the splash screen (as per the screenshot below) and would not proceed past that.Just...
View ArticleUsing HTMX with ASP.NET Core: Inline editing
IntroductionIn the previous blog post, I demonstrated how you could delete items with AJAX using HTMX and ASP.NET Core with a page refresh when items are deleted. In this blog post, I continue with...
View ArticleUsing HTMX with ASP.NET Core: Infinite scrolling
IntroductionContinuing with my series on using HTMX with ASP.NET Core, I want to demonstrate how you can implement infinite scrolling. For this example, we are working with an application that displays...
View Article