DevDays Vilnius 2019


May 14-16, 2019

Mikhail Smal

Czech Republic

About Mikhail Smal

Mikhail Smal is a software developer for more than 10 years with focus on .NET web applications. In 2016, when he moved from Russia to the Czech Republic to challenge himself in Europe and work for international IT companies, he fell in love with functional programming. F# became his “number one” language. In 2018 he started to actively participate in F# community, talking about F#, Fable and to put his effort to F# OSS projects. Mikhail has created Fable bindings for MaterialUI React library.


SAFE Web Development with F#


The workshop will cover development of a web application written entirely in F#. SAFE stack provides frameworks and tools for implementing both, backend part (with Saturn framework) and frontend part (with Fable compiler). We will dive deep into the declarative server-side code, functional client-side implementation and simple connection between them.


  • Part 1: Introduction to F#
    • Ideology of F# language
    • Basic language features
    • Advantages of F#
  • Part 2: Overview of SAFE stack
    • Saturn – server-side web framework
    • Azure – cloud hosting
    • Fable – F# to JavaScript compiler
    • Elmish – implementation of Elm architecture in F#
    • Alternatives to the components
  • Part 3: Hands-on example
    • Installation of SAFE stack template
    • Creation of new application
    • Customization of server side
      • Connect to third-party storage (DB/API)
      • Add new endpoints
    • Customization of client side
      • Add new page
      • Style the page
    • Connection between server and client sides
    • Build/Deployment with FAKE


The main goal of this workshop is to show the simplicity of full-stack web development with the help of single programming language, F#, and to learn the basic concepts of SAFE stack toolchain.

Target audience

The developers interested in functional programming. Those who made attempts on F# and who haven’t. C# developers as the users of .NET platform, who want to look at web development from a different angle. No previous knowledge of F# language of FP paradigm is needed.

Technical requirements