Web development in F# with SAFE stack

Prague Software Craftsmanship
Prague Software Craftsmanship
Public group


Location image of event venue


The workshop will cover the 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.

Event is limited to 20 people and we charge 20 EUR per person. The money will be afterward donated to charity. Refreshment and lunch will be provided by Vistaprint.

Part 1: Introduction to F# (very brief)
- The ideology of F# language
- Basic language features
- Advantages of F#

Part 2: Overview of SAFE stack
- Saturn – a 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 a 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
- The connection between server and client sides
- Build/Deployment with FAKE

The schedule will be adjusted before the event:
9:45 meet and greet
10:00 part 1
10:50 coffee break
11:00 part 2
11:50 lunch break
13:00 part 3
16:00 networking

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

Target audience
The developers interested in functional programming. Those who made attempts on F#. Ideally, you should at least attend two previous meetup sessions about FP and F#. There won't be much explanation about the language itself.

Technical requirements
- Visual Studio Code https://code.visualstudio.com/
Plugins: OmniSharp, Ionide
- .NET Core SDK 2.2 https://dotnet.microsoft.com/download/dotnet-core/2.2
- Node.js v10+ & NPM v6+ https://nodejs.org/en/
- Yarn[masked]https://yarnpkg.com/en/
- Modern browser (Chrome, Firefox, Safari)
- MacOS/Linus users only:
Mono 5 https://www.mono-project.com/docs/getting-started/install/

Mikhail Smal is a software engineer with more than 10 years of experience. His main focus has always been web-programming in .NET and JavaScript. A couple of years ago, when he moved to the Czech Republic he fell in love with functional programming. F# became his "number one" language. He is actively participating in the F# community since 2018, talking about F# and Fable at meetups and conferences and to put effort to F# OSS projects.