Open Source F# projects I'm supporting in 2024

Date: 2023-12-29 | create | tech | reflect | fsharp | open-source |

I've previously written about how open source software is unsustainable in its current form. I don't know how to solve this long-term but short-term I know we can support the projects we use and like to help vote for their continued existence.

In this post I'm going to share a few projects I like and think deserve more support.

Q: Which open source projects are you supporting in 2024?

Answer

I've selected a handful of projects that I've used extensively in the past year and that I'd like to continue using next year. Yes there are many more projects out there that probably deserve support but these are the ones I have direct experience with. We can't do everything but we can often do a little bit more.

I've grouped my selections roughly by the category in which I use them / why I think they should continue existing.

F#

The first bucket consists of projects that directly benefit the continuing existence of F#. I love this language but it has a pretty small community so I'm voting to keep it going.

F# Foundation

The first project I'm calling out isn't really a project at all. The F# Foundation does a lot of things that help support F# and its ecosystem. Thus support here can potentially benefit the ecosystem far more than giving to any one project (and is closer to a sustainable OSS model IMO).

Ionide

Ionide is a collection of tools that allow for IDE support for F#. Again this is not a library you would typically use in a project but I feel that devx is incredibly important to get right for a technology to reach adoption. If IDE support in F# was bad even I would likely stop using it so I'm voting for Ionide to continue existing and improving.

Building Sites with F#

The next bucket of projects includes several packages I've used heavily over the past year building my projects. For the most part I build web apps so these heavily lean towards fullstack apps with F#.

Giraffe

It should be no surprise that Giraffe (the most popular F# web framework) is on this list. I use it in nearly all of my projects, have written numerous tutorials, and even use it in my F# project boilerplate - CloudSeed.

Giraffe.ViewEngine

Giraffe.ViewEngine may be a bit more of a surprise. It's an HTML DSL that allows me to build frontends with most of the type-safety of F#. I was initially reluctant to try it out as I thought it might abstract the underlying HTML too much but I actually found it to be very simple and extraordinarily fast and have since gone on to migrating my sites (including this one!) to F# / Giraffe.ViewEngine.

Markdig and YamlDotnet

When I was considering moving over to F# for fullstack apps, I wanted to run several tests / prototypes to ensure that I wasn't coding myself into a corner. One of these tests was to build a simple markdown blog in F# so I could see if it would be a good fit for this site and others like it. I found the available libraries to be very easy to use with Markdig for markdown processing and YamlDotnet for parsing my frontmatter.

F# Influencers

I mentioned in The State of F# (2023) that the biggest problem with F# is the relatively small community. The main way I could think of making it bigger was to make onboarding to the language easier and more attractive. The way to do that? Make more content.

Now obviously I create a lot of F# content these days and hopefully it makes the language / ecosystem better. But I'm already supporting myself so giving myself money is kinda useless.

So instead I'm supporting Sergey Tihon who's supported the F# ecosystem via content for much longer than I have. He runs both the F# Advent Calendar and F# Weekly which I've participated in over the past two years.

Next

That's the list of projects / orgs / people I'm supporting this year to try and improve the F# ecosystem.

If you liked this post you might also like:

Want more like this?

The best / easiest way to support my work is by subscribing for future updates and sharing with your network.