United Kingdom: +44 (0)208 088 8978

SAFE Stack

The best way to write functional-first web applications

Why SAFE Stack?

We're great believers in using F# wherever possible. This need not be confined to server-side backend processes but can also include web programming on the client. That's why we came up with the SAFE Stack - a set of existing open-source F# technologies which can be used together to build cohesive cloud-ready applications that take advantage of F# across the entire application - even in the browser. Adopting Javascript industry-standard libraries and frameworks is now within reach of F# developers, allowing teams to reuse existing skills and techniques to create responsive and highly-performant browser applications.

A flexible stack for F# developers

SAFE stack provides developers who are already enjoying the benefits with functional programming, and in particular F#, with a flexible stack that provides complete end-to-end solutions for cloud-ready, web-enabled applications using popular and widely-used technologies whilst promoting functional programming techniques as first-class citizens.

SAFE Stack is not prescriptive, and will not lock you into any particular library, framework or cloud provider - instead, it offers alternatives at every level of the stack to cater for all teams and vendors.

For those developers who are not familiar with functional programming, or are .NET developers who have not taken the leap to F#, SAFE Stack provides a coherent story that will get you up and running as quickly as possible.

Saturn - Lightweight and simple server-side programming

Use the Saturn library to create applications that favour a functional-first approach for servicing HTTP requests.

Saturn is an easy-to-learn web development framework written in F#. Many of its components and concepts will seem familiar to those of us with experience in other web frameworks like Ruby on Rails or Python’s Django. Built on top of Microsoft's ASP .NET Core web framework, it provides a ready-made set of functions and combinators that allow developers to represent the logic of their web application as a set of simple functions that are composed together. This model offers an excellent way to rapidly build powerful processes in a succinct fashion, and then compose them together using Saturn's powerful computation expressions in a stateless manner into powerful applications - a great use of F# and FP principles.

No interfaces, no inheritance, and no heavyweight libraries or frameworks needed.

Azure for Hosting and Services

Use Microsoft Azure to provide the hosting environment for compute, storage and other platform services.

With its wide variety of platform services, rock-solid reliability and low costs, Azure is the perfect platform to build a powerful, flexible system at a low cost that allows your system to shine. Cloud providers such as Microsoft Azure offers a growing number of valuable platform services that can be cheaply and quickly employed and then utilised. These services enable rapid application development and deployment at low cost, with minimal upfront costs.

When coupled with F#'s powerful type system, scripting capabilities and impressive collection of libraries, Azure becomes an even more compelling package.

Fable - F# in the Browser

Fable is an F# to JavaScript compiler powered by Babel, designed to produce readable and standard code.

Fable is more than simply a library that cross-compiles F# into Javascript - it behaves as a first-class citizen of both the F# world in .NET and in the Javascript world. This means F# users can use .NET seamlessly, whist Fable also doesn't ignore the Javascript ecosystem, integrating with NPM and Typescript definitions with no runtime overhead. This allows you to make use of virtually all JavaScript and React libraries in existance, whilst accessing them through F#.

Enjoy the benefits of F# whilst taking advantage of increased reach through browser-based applications.

Elmish for simple to understand web app development

Use Elmish as an client-side application framework to handle UI interaction.

Instead of models such as Angular JS or JQuery, the Elmish model takes full advantage of the functional programming pattern and avoids developers having to get their hands dirty with direct access to HTML. Making use of Facebook's widely-used React framework, Elmish on F# allows developers to create pure functional applications using a simple pattern called model-view-update.

Create user interfaces using a simple pattern that scales from simple samples to complex, interactive applications.

How do I get started?

Check out the official homepage, or contact us for a complementary demo and consultation.

Contact us to learn more!