What's New in F# 9

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
  1. Avalonia.FuncUI

    Develop cross-plattform GUI Applications using F# and Avalonia!

    ```

    To get self-contained binaries (that don't need .NET to be installed locally) for those platforms.

    There is a decent multi-platform UI framework called Avalonia: https://github.com/fsprojects/Avalonia.FuncUI

    There are good actively maintained web frameworks: https://fsharp.org/guides/web/#web-frameworks

    There are some passionate people writing great books about F#: https://fsharpforfunandprofit.com/ddd/

    Most of F#'s adoption issues seem to be because:

    1. It's tough to convince people outside of the .NET community to use .NET.

    2. Most of the people using .NET use C#.

    3. It's hard to convince C# users to adopt F#. (See https://www.reddit.com/r/dotnet/comments/16m0wdj/why_dont_yo... and similar threads.)

    I'd love to work with F# full-time, but — short of starting my own company using it or convincing Microsoft to pay me to help them showcase its benefits — it's been hard to find work with F#, which drove me to spend time with other languages.

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. Bolero

    Bolero brings Blazor to F# developers with an easy to use Model-View-Update architecture, HTML combinators, hot reloaded templates, type-safe endpoints, advanced routing and remoting capabilities, and more.

    For WebAssembly, there is Bolero:

    https://fsbolero.io/

    Unfortunately, maintenance seems to have stopped since Jan,

    https://github.com/fsbolero/Bolero/releases

    (I tried creating a sample project on Linux which didn't work to begin with)

  4. Fabulous

    Declarative UI framework for cross-platform mobile & desktop apps, using MVU and F# functional programming

    There are a few options:

    https://github.com/fsprojects/Avalonia.FuncUI

    https://fabulous.dev/ (which targets Avalonia/MAUI/Xamarin)

    https://github.com/kekyo/epoxy (similar to Fabulous)

    > companies

    If you're interested I can ask around.

  5. Epoxy

    Easy, simplicity and minimalism multi-platform MVVM library. (by kekyo)

    There are a few options:

    https://github.com/fsprojects/Avalonia.FuncUI

    https://fabulous.dev/ (which targets Avalonia/MAUI/Xamarin)

    https://github.com/kekyo/epoxy (similar to Fabulous)

    > companies

    If you're interested I can ask around.

  6. fslang-design

    RFCs and docs related to the F# language design process, see https://github.com/fsharp/fslang-suggestions to submit ideas

    Damn. It's only for nulls: https://github.com/fsharp/fslang-design/blob/main/RFCs/FS-10...

    Wonder if they will generalize:

  7. VisualFSharp

    The F# compiler, F# core library, F# language service, and F# tooling integration for Visual Studio

    Thanks for the tips! I had thought there were still some other gotchas with AOT and F# but it looks like the list is smaller than last time I looked. https://github.com/dotnet/fsharp/issues/13398

  8. FSharp.Control.TaskSeq

    A computation expression and module for seamless working with IAsyncEnumerable<'T> as if it is just another sequence

    This has been addressed in F# 6: https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fs...

    Asynchronous sequences (IAsyncEnumerable) support is provided via https://github.com/fsprojects/FSharp.Control.TaskSeq

    F# is a very capable language and there is a broad spectrum of tasks that can be solved by just implementing a new CE, something I could not even think of in C#.

  9. Stream

    Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.

    Stream logo
  10. fsharp.org

    The fsharp.org website

    It's an open-source project with its own F# Software Foundation. If Microsoft drops it, I think it would continue.

    https://fsharp.org/

  11. DbFun

    Functional-relational mapping framework for F#

    Here are 2 possibilities:

    - https://monazita.gitlab.io/monazita/ (i developed it for a project of mine while learning fsharp. Basically works but could be more polished and is pgsql only)

    - https://github.com/jacentino/DbFun (more polished than previous project, and multi db)

  12. myowndb

    Not pretending my project is large or important, but it is an example of a non trivial project written in fsharp: https://gitlab.com/myowndb/myowndb/

  13. fslang-suggestions

    The place to make suggestions, discuss and vote on F# language and core library features

    That would be a breaking change; certainly it's impossible to do that in the presence of reflection, and I imagine there are simpler cases. (See discussion on the similar https://github.com/fsharp/fslang-suggestions/issues/884 .)

  14. MongoDB

    The official MongoDB Node.js driver

    I mean, this really depends on what you're looking at.

    Here's a sample from the MongoDB client: https://github.com/mongodb/node-mongodb-native/blob/main/src...

    Here's a sample from Storybook: https://github.com/storybookjs/storybook/blob/next/code/core...

    Here's a sample from Prisma: https://github.com/prisma/prisma/blob/main/packages/client/s...

    Here's a sample from Cal.com: https://github.com/calcom/cal.com/blob/main/packages/core/Ev...

    It's rather the specific use case that determines the style of the code that's written. In the examples above, there's no need for the teams to choose JavaScript classes and inheritance to model the logic, yet it likely better fits the programming model of those modules.

    Look at Nest.js as well: https://github.com/nestjs/nest/blob/master/packages/core/rou...

    The whole codebase of Nest.js looks an aweful lot like Spring or ASP.NET (controller syntax) probably because there's a lot of crossover in terms of what APIs need at scale.

    It just so happens that most use cases for C# and Java favor applications at a larger scale. Another key difference being object scope and lifecycles -- something that rarely comes into play in the generally single-threaded Node runtime. This being one of the key reasons why dependency injection is a thing in C# and Java land.

  15. storybook

    Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation

    I mean, this really depends on what you're looking at.

    Here's a sample from the MongoDB client: https://github.com/mongodb/node-mongodb-native/blob/main/src...

    Here's a sample from Storybook: https://github.com/storybookjs/storybook/blob/next/code/core...

    Here's a sample from Prisma: https://github.com/prisma/prisma/blob/main/packages/client/s...

    Here's a sample from Cal.com: https://github.com/calcom/cal.com/blob/main/packages/core/Ev...

    It's rather the specific use case that determines the style of the code that's written. In the examples above, there's no need for the teams to choose JavaScript classes and inheritance to model the logic, yet it likely better fits the programming model of those modules.

    Look at Nest.js as well: https://github.com/nestjs/nest/blob/master/packages/core/rou...

    The whole codebase of Nest.js looks an aweful lot like Spring or ASP.NET (controller syntax) probably because there's a lot of crossover in terms of what APIs need at scale.

    It just so happens that most use cases for C# and Java favor applications at a larger scale. Another key difference being object scope and lifecycles -- something that rarely comes into play in the generally single-threaded Node runtime. This being one of the key reasons why dependency injection is a thing in C# and Java land.

  16. Prisma

    Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB

    I mean, this really depends on what you're looking at.

    Here's a sample from the MongoDB client: https://github.com/mongodb/node-mongodb-native/blob/main/src...

    Here's a sample from Storybook: https://github.com/storybookjs/storybook/blob/next/code/core...

    Here's a sample from Prisma: https://github.com/prisma/prisma/blob/main/packages/client/s...

    Here's a sample from Cal.com: https://github.com/calcom/cal.com/blob/main/packages/core/Ev...

    It's rather the specific use case that determines the style of the code that's written. In the examples above, there's no need for the teams to choose JavaScript classes and inheritance to model the logic, yet it likely better fits the programming model of those modules.

    Look at Nest.js as well: https://github.com/nestjs/nest/blob/master/packages/core/rou...

    The whole codebase of Nest.js looks an aweful lot like Spring or ASP.NET (controller syntax) probably because there's a lot of crossover in terms of what APIs need at scale.

    It just so happens that most use cases for C# and Java favor applications at a larger scale. Another key difference being object scope and lifecycles -- something that rarely comes into play in the generally single-threaded Node runtime. This being one of the key reasons why dependency injection is a thing in C# and Java land.

  17. cal.com

    Scheduling infrastructure for absolutely everyone.

    I mean, this really depends on what you're looking at.

    Here's a sample from the MongoDB client: https://github.com/mongodb/node-mongodb-native/blob/main/src...

    Here's a sample from Storybook: https://github.com/storybookjs/storybook/blob/next/code/core...

    Here's a sample from Prisma: https://github.com/prisma/prisma/blob/main/packages/client/s...

    Here's a sample from Cal.com: https://github.com/calcom/cal.com/blob/main/packages/core/Ev...

    It's rather the specific use case that determines the style of the code that's written. In the examples above, there's no need for the teams to choose JavaScript classes and inheritance to model the logic, yet it likely better fits the programming model of those modules.

    Look at Nest.js as well: https://github.com/nestjs/nest/blob/master/packages/core/rou...

    The whole codebase of Nest.js looks an aweful lot like Spring or ASP.NET (controller syntax) probably because there's a lot of crossover in terms of what APIs need at scale.

    It just so happens that most use cases for C# and Java favor applications at a larger scale. Another key difference being object scope and lifecycles -- something that rarely comes into play in the generally single-threaded Node runtime. This being one of the key reasons why dependency injection is a thing in C# and Java land.

  18. Nest

    A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀

    I mean, this really depends on what you're looking at.

    Here's a sample from the MongoDB client: https://github.com/mongodb/node-mongodb-native/blob/main/src...

    Here's a sample from Storybook: https://github.com/storybookjs/storybook/blob/next/code/core...

    Here's a sample from Prisma: https://github.com/prisma/prisma/blob/main/packages/client/s...

    Here's a sample from Cal.com: https://github.com/calcom/cal.com/blob/main/packages/core/Ev...

    It's rather the specific use case that determines the style of the code that's written. In the examples above, there's no need for the teams to choose JavaScript classes and inheritance to model the logic, yet it likely better fits the programming model of those modules.

    Look at Nest.js as well: https://github.com/nestjs/nest/blob/master/packages/core/rou...

    The whole codebase of Nest.js looks an aweful lot like Spring or ASP.NET (controller syntax) probably because there's a lot of crossover in terms of what APIs need at scale.

    It just so happens that most use cases for C# and Java favor applications at a larger scale. Another key difference being object scope and lifecycles -- something that rarely comes into play in the generally single-threaded Node runtime. This being one of the key reasons why dependency injection is a thing in C# and Java land.

  19. language-ext

    C# pure functional programming framework - come and get declarative!

    louthy/language-ext [1] is a C# library which does its darndest to build a fully functional language inside C#. I found it very interesting and used it for an experimental project (which ended up failing, not sure if my usage of language-ext was partially to blame). People told me I should have just used F#.

    Anyone familiar with both that can compare them?

    [1]: https://github.com/louthy/language-ext

  20. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • The Case for C# and .NET

    18 projects | news.ycombinator.com | 24 Jul 2022
  • Targeting Node, Bun and Deno With F#

    10 projects | dev.to | 13 Jul 2022
  • 10 Performance Tips for Scaling Your Node.js API

    9 projects | dev.to | 9 Jul 2025
  • If you’ve upgraded boto3 or the JavaScript S3 client in the last week, uploading files won’t work. Here’s how to fix it.

    1 project | dev.to | 24 Jun 2025
  • How to Build a Fullstack AI Agent with LangGraphJS and NestJS (Using Agent Initializr)

    3 projects | dev.to | 17 Jun 2025