United Kingdom: +44 (0)208 088 8978

SAFE Stack 6 – Coming December 2025

Planning for the next release of SAFE Stack - what would you like to see?

It's more than 18 months since the release of SAFE Stack 5.0, the last major upgrade to SAFE Stack. Of course we love SAFE Stack at Compositional IT. In addition to upgrading to the then-latest LTS version of .NET 8 and F# 8 it also saw the upgrade to Fable 4, switching from Webpack to Vite for JavaScript bundling, and moving to Tailwind for styling.

.NET upgrade

As Microsoft readies to ship .NET 10, we're planning for the next major release of SAFE Stack. What can we expect in version 6?

Certainly we'll upgrade to .NET 10 and F# 10. What else?

Built-in component library with Daisy UI

We've posted before that we like using Daisy UI, a component library built on top of Tailwind, in our SAFE Stack applications, and many of our customers do the same. For SAFE Stack 6, we intend to include Daisy UI as part of the default package.

JavaScript compiler upgrade - Fable 5

We'll explore migrating from Fable 4 to Fable 5, the latest version of the F# to JavaScript compiler, currently in alpha.

Stretch goal: better support for task in API functions

Finally for now we want to look at whether we can use task Computation Expressions in Remoting, the mechanism that makes client-server API calls exceptionally straightforward in SAFE Stack.

Currently this requires that the API functions return Async<'T>. In practice we find that many of our API functions take the form:

let apiMethod() =
    task {
        (** ... .NET asynchronous calls which return Task<'T> here ... **)
    }
    |> Async.AwaitTask

Whereas ASP.NET Core and Giraffe support Task<'T> out of the box. We'd love to be able to skip the Async.AwaitTask call to support better interoperability with .NET libraries - eliminate task->async->task in the API implementation - and reduce the boilerplate.

Comments? And thanks!

As always, we are incredibly thankful to the wonderful F# community who maintain these amazing projects, and we're glad to be able to make our own contribution. And thank you to all those using SAFE Stack in your projects.

Is there something you'd like to see in SAFE Stack 6? Please share your thoughts with us on BlueSky. We look forward to hearing from you.