Full-stack web framework for building functional, reactive web apps and microservices in F# and C# with JavaScript compilation.
WebSharper is a full-stack web framework that allows developers to build functional and reactive web applications and microservices using F# and C#. It compiles .NET code to JavaScript, enabling type-safe client-side development and seamless integration between server and client logic. The framework provides tools for creating both single-page and multi-page applications with built-in routing, HTML generation, and JavaScript library bindings.
F# and C# developers building modern web applications who want type safety, functional programming paradigms, and the ability to share code between client and server. It's also suitable for teams looking to leverage .NET ecosystems for full-stack development.
Developers choose WebSharper for its strong type safety, functional programming model, and the ability to write entire web applications in F# or C# without manually writing JavaScript. Its compiler ensures runtime errors are caught at compile time, and its integrated client-server model simplifies full-stack development.
WebSharper - Full-stack, functional, reactive web apps and microservices in F# and C#
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Compiles F#/C# code to JavaScript with compile-time checks, reducing runtime errors in client-side logic, as demonstrated by the [<JavaScript>] attribute for marking client functions.
Enables direct server function calls from client code using [<Rpc>] annotations, simplifying API layers without manual HTTP handling, as shown in the DoWork example.
Leverages F#'s functional paradigms for building reactive HTML with WebSharper.UI, allowing declarative UI construction in SPAs and MPAs.
Supports deployment on ASP.NET Core, IIS, and Suave servers, offering both enterprise and lightweight hosting, as detailed in the running applications section.
Manual configuration is required, such as editing project files and adding WebSharper properties, which can be error-prone compared to modern CLI-driven frameworks.
While extensions exist for libraries like Chart.js, the selection is narrower than native npm packages, and creating custom bindings with WIG adds overhead.
Key features like REST applications are marked as TBA in the README, indicating gaps in official guides and resources for advanced use cases.