F# for Web Development

F# excels at building efficient, scalable, and robust web solutions. This article gives links to some significant resources related to web programming with F#. Some frameworks for web programming with F# are listed below.

Other web development options are documented in the F# Software Foundation's Guide to Web Programming with F#.

ASP.NET Core

ASP.NET Core is a modern, cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications. It runs on .NET Core and supports F# out of the box. If you install the .NET SDK, there are F# templates available via the dotnet new command.

Giraffe

Giraffe is a community-driven F# library for building rich web applications with superb performance. It has been specifically designed with ASP.NET Core in mind and can be added into ASP.NET Core pipelines.

Saturn

Saturn is a community-driven F# web development framework that implements the server-side MVC pattern. Many of its components and concepts will seem familiar to anyone with experience in other web frameworks like Ruby on Rails or Python’s Django. It’s built on top of Giraffe and ASP.NET Core - a modern, cross-platform, high-performance development platform for building cloud-ready web applications.

Fable

Fable is a compiler that brings F# into the JavaScript ecosystem. It generates modern JavaScript output, interoperates with JavaScript packages, and supports multiple development models including React.

SAFE Stack

SAFE Stack is a community-driven technology stack for functional-first web applications using Azure. SAFE Stack allows you to quickly develop compelling web applications that use industry-standard technologies whilst using F# to ensure an enjoyable development experience. SAFE includes Giraffe, Saturn, and other components.

WebSharper

WebSharper is a community-driven, full-stack, functional reactive web programming technology for .NET, allowing you to develop microservices, client-server web applications, reactive SPAs, and more in F#.

See also