Full-stack, functional reactive web programming for .NET

Develop microservices, client-server web applications, reactive SPAs, and more in C# or F#.

Awesome WebSharper

Sources on GitHub

GitHub

Ask on the Forums

WebSharper Forums

Chat on Gitter

Gitter

Chat on F# Slack

F# Web Slack
Microsoft
Microsoft Research
Rideau
Ford
McGraw Hill
UNMC
ELTE
DUE
VeraCentra
PPTE

Join 4k+ WebSharper developers

Receive the newsletter.
Experimental tools and extensions: CodeMirror, ThreeJS, Slickgrid, and many more.

Get started in just minutes

On Windows, Mac and Linux with .NET Core.

Install the WebSharper project templates:

Create a project of your choice:

Build and run:

Explore different application architectures

and a slew of other samples

PeopleAPI / PeopleClient (F#)

REST service backend and SPA client to consume it

UrlShortener (F#)

Full-stack, client-server application with OAuth

TodoMVU (F#)

SPA using the Model-View-Update (MVU) pattern

Tic-Tac-Toe (F#)

SPA built with React components

Functional, reactive applications with WebSharper.UI

in C# or F#

Bind composite data models to your reactive user interfaces.

The flow of reactive values through the code is explicit yet concise, for maximum readability.

Learn more...

Reactive code in C#
Model-View-Update

Model-View-Update architecture with WebSharper.Mvu

Structure client-side applications with clear separation of concerns between logic and display.

Based on WebSharper.UI, Mvu brings Elm-like architecture to WebSharper.

Learn more...

Build React components

You can also use widespread libraries such as React to build applications.

The syntax is as convenient as JSX, with the added benefit of strong typing.

Learn more...

React component
Server-side site definition

Web APIs and server-side JSON and HTML

Declare your URLs as a C# or F# endpoint type, and WebSharper handles the dispatch. Create safe internal links from endpoint values.

You can share the same rendering code and templates between the server and the client.

Automatically parse JSON requests and generate JSON responses based on your types.

Learn more...

Client-side routing

Write SPAs with the same routing API on the client side as you would use on the server side.

Learn more...

Client-side routing
C# LINQ queries and F# query expressions

Use powerful language constructs on the client side

C#: LINQ queries, asynchronous Tasks, generators...

F#: Query expressions, async workflows, sequence expressions...

Learn more...

Type-safe HTML templating

Use HTML templates to keep your logic and UI clearly separate and facilitate the collaboration between programmers and designers.

Learn more...

Type-safe HTML Templating
Seamless remoting

Remoting with ease

Seamlessly call server-side asynchronous functions from the client side.

AJAX call, JSON serialization... Everything is handled automatically.

Learn more...

Powerful UI abstractions

Declare full interactive forms in just a few lines of code with Formlets and Piglets.

Learn more...

Forms and Formlets
Web Workers without hassle

Web Workers without hassle

Write client-side parallel code directly in your code.

The compiler automatically creates the separate trimmed JavaScript file for the web worker.

Learn more...

Upcoming features

WebPack support

Integrate your C# or F# client-side code into an existing JavaScript codebase.

Follow this issue

TypeScript output

Compile your C# or F# to TypeScript to easily interact with your TypeScript codebase.

Follow this issue

Featured community projects

Tweet Mashup!

Tweet Mashup by @skyetetra,
serving over a million visitors.

FsRover

FsRover by @rflechner,
controlling robots and IoT devices.

You have a cool project?
Tell us about it!