Find your next readFilters
Reset

Page 1 of 2 (Total items: 12)
Towards 1.0: Making Umami.NET Production Ready

When I first integrated Umami analytics into my blog platform, I quickly ran into a frustrating reality: Umami's API documentation is... let's be charitable and call it "minimal." Error messages are cryptic at best, non-existent at worst. Parameters change…

Querying Postgres Data in Grafana

In a previous post I detailed how I added Grafana to my docker-compose to provide insights into performance for this site. As I have Umami on here AND self host the database for that in this post I'l cover how I added new panels to view the data in Grafana.…

Umami.Net and Bot Detection

So I've posted a LOT in the past on using Umami for analytics in a self-hosted environment and even published the Umami.Net Nuget pacakge. However I was having an issue where I wanted to track users of my RSS feed; this post goes into why and how I solved it.…

Using Umami Data for Website Stats

One of my projects since starting this blog is an almost obsessive wish to track how many users look at my website. To do this I use Umami and have a BUNCH of posts around using and setting up Umami. I also have a Nuget package which makes it possible to track…

Unit Testing Umami.Net - Testing UmamiBackgroundSender

In the previous article, we discussed how to test the UmamiClient using xUnit and Moq. In this article, we will discuss how to test the UmamiBackgroundSender class. The UmamiBackgroundSender is a bit different to UmamiClient as it uses IHostedService to stay…

Unit Testing Umami.Net - Testing UmamiClient

Now I have the Umami.Net package out there I of course want to ensure it all works as expected. To do this the best way is to somewhat comprehensively test all the methods and classes. This is where unit testing comes in. Note: This isn't a 'perfect approach'…

Adding Umami Tracking Client Nuget Package

Now I have the Umami client; I need to package it up and make it available as a Nuget package. This is a pretty simple process but there are a few things to be aware of. Creating the Nuget Package Versioning I decided to copy Khalid and use the excellent…

Adding Umami Tracking Client Follow Up

In an earlier post I sketched out how a Tracking Client for Umami in C# could work. Well I've finally had a chance to test it extensively and improve it's operation (yes ANOTHER IHostedService). Quirks of the Umami API The Umami Tracking API is both very…

Adding a C# Umami Tracking client

In a previous post we added a client for fetching Umami analytics data. In this post we will add a client for sending tracking data to Umami from a C# application. Umami is a lightweight analytics service that can be self-hosted. It is a great alternative to…

Handling (unhandled) errors in ASP.NET Core

In any web application it's important to handle errors gracefully. This is especially true in a production environment where you want to provide a good user experience and not expose any sensitive information. In this article we'll look at how to handle errors…

Page 1 of 2 (Total items: 12)
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.