The WebSharper Stack

WebSharper is an F# web framework and an ecosystem of over 50 libraries (also known as extensions), each available as a Nuget package and bringing additional functionality, abstractions to model certain pieces of the web puzzle, and bridges to JavaScript code. It is fundamentally different from other traditional web frameworks and requires F# programming skills and a new mindset to learn, use and master. This mindset is rooted in functional programming, and is relatively easy and quick to develop and master if you set your mind to it. However, once you are up to speed, WebSharper gives you an absolute edge over other web developers, and makes your development significantly shorter and faster.

Click here to learn about our training and consulting services.

At its core, WebSharper has a built-in F# to JavaScript compiler that enables full-stack, client-server or offline applications to be written in F# without the need to code in JavaScript. This compiler, unlike the many F# or IL to JavaScript translators available, generates fully working applications (and not just JavaScript or HTML) and among others, is able to track and automatically manage dependencies in the generated code, freeing the programmer from having to manually insert and order library dependencies and other artifacts.

"WebSharper is not just an F# to JavaScript translator" - it's literally much more: WebSharper is about powerful functional web abstractions built to model web applications in an efficient, robust and concise manner. A recurring theme in WebSharper is type safety, e.g. providing ways to encode things in the type system that are traditionally handled in insecure ways (such as "string-string dictionaries" for form data, etc.) in other web frameworks. For instance, WebSharper has safe URLs (that can never point to a non-existing page within an application), web forms and even entire web applications encoded as a single F# value, with various combinators to work on them and compose them to the desired complexity.

Next to the core WebSharper capabilities, the following extensions are standard WebSharper idioms:

The following sections give you a thorough description of key aspects of developing with WebSharper. If you find something unanswered in these documentation pages, don't hesitate to post your questions on the user forums.