WTF is "more expressive code"
Apr 06, 2025
Often times when reading about different programming languages and their features, the term "expressiveness" will come up. But what does that actually mean in a real world context.
Protect your ASP.NET site using FIDO2 Passkeys
Dec 11, 2024
F#AdventCalendarAuthenticationPasskey
Previously we've explore how to protect your ASP.NET site using Supabase Auth and then using Bitwarden's Passwordless service. Lets explore how to use Passkeys directly without relying on a third party service.
Protect your ASP.NET site using Passkey's via the Passwordless service
Mar 21, 2024
WebAuthn is a new standard to authenticate users in a secure way by making use of passkeys. Lets explore how to protect your ASP.Net site using WebAuthn via Bitwarden's Passwordless service.
Protect your ASP.NET site using Supabase authentication
Feb 20, 2024
Sometimes you still want to build a simple server side rendered website, and you want to use simple cookie based auth. Let's explore how we can leverage Supabase Auth to protect our site.
HTMX, WebSockets, SignalR and you
Dec 31, 2023
F#AdventCalendarSignalRWebSocketsHTMX
HTMX has gained some recent popularity. Lets explore how we can consume a SignalR Hub from a HTMX application.
Derailing gracefully with Railway Oriented Programming
Aug 28, 2023
Railway oriented programming is a great way to compose multiple functions that can each fail for a different reason. Here we're going to explore some techniques on how to model the Error state.
F# in strange places: Supabase edge functions
Dec 31, 2022
F#AdventCalendarWebAssemblySupabaseDeno
With the rising interest in WebAssembly, can we compile F# to WebAssembly, but then use it from a Supabase edge function?
Let's write Fable bindings for a JS library
Feb 02, 2022
Learn about writing Fable Bindings for a Javascript or Typescript library. See the article for a list of common scenarios and examples.
Using Sutil to develop a real world application
Dec 31, 2021
F#FableAdventCalendarWebSutil
Testing out a new web framework is always difficult unless you spend some time with it building a real world application. This post explores doing just that by using Sutil to develop an application called Conduit as part of the Real World project to compare frontend and backend frameworks.
Managing your client connections in SignalR, including with authentication
Jul 09, 2021
F#FableSignalRAuthentication
When using SignalR, one of the most important things will be to manage the various connections made by the clients, as well as being able to send messages to specific clients. SignalR offers three different ways of specifying connections and clients, each with their distinct usages. The question comes down when to use what, and the advantages and disadvantages offered by each.
Improving Real-time communication using Fable.SignalR
Dec 31, 2020
F#FableSignalRWebSocketsFabulous
Learn to use Fable.SignalR for a more functional and type-safe approach to communication over websockets when using Fabulous.Xamarin as the client.
Real-time communication with Giraffe and Fabulous
Oct 25, 2020
F#SignalRWebSocketsFabulous
Learn how to integrate SignalR with Fabulous to give your xamarin apps written in F# real-time interactivity.
Test your UI by treating it as a state machine
Jul 01, 2020
I want to introduce a state machine testing library for .Net called Scrutiny. It aims to allow random testing of state machines, with a focus on UI testing, by modeling a state machine as a directed graph and path finding through all possible states.
My experience with the F# Mentorship program
Apr 30, 2020
A summary of my experience as a mentor in the F# mentorship program.
Privacy respecting analytics using GoAccess
Jan 28, 2020
GoAccessTraefikAnalyticsPrivacy
My experience setting up GoAccess to parse access logs from Traefik. View web analytics while respecting user privacy, as well as not requiring the client to load any tracking scripts by parsing Traefik access logs, and viewing them with an HTML report generated by GoAccess.
Type safe SQL Queries using Rezoom.SQL
Dec 15, 2019
Introduction to Rezoom.SQL. A F# Type Provider that generates types from migration scripts, instead of a remote resource.
Recursively replacing parts of a URL
Apr 09, 2019
One approach to learning how to write idiomatic F# is by first writing in an iperative style, and then refactoring it.
Fable React is nice. But what about Fable Preact
Dec 31, 2018
Reducing final bundle size of a Fable-React application by using Preact instead.
User Defined Function (UDF) in SQLite and casting an F# function to a Func object
Nov 17, 2018
Extending SQLite with a User Defined Function to workaround SQLite's ASCII limitation when it comes to comparing diacritics.
Recursive Async
Nov 15, 2018
More involved take on recursion. How to properly type recursion when async is involved.
Power of Active Patterns
Nov 11, 2018
Showcase about how one could refactor a large set of nested if/else statements by using F# Active Patterns