Learning
This section contains useful repositories that allow you to learn more about the SAFE stack, at your own pace.
Tutorials
SAFE Dojo
This dojo is a guided set of tasks designed to give you hands-on experience with the client and server components of the SAFE stack. You'll create server-side routes, client side UI and shared validation logic as you create a mashup application to provide details on UK locations.
The dojo takes around 90 minutes to complete if you have never worked with the stack before.
SAFE Samples
The following example repositories (and more!) can be found in the official SAFE Stack organisational GitHub page.
SAFE Todo List
The simplest Todo app: a client-server application written entirely in F# using Elmish on the client. Remoting for type-safe communication between the two.
tabula-rasa
A minimalistic real-worldish blog engine written entirely in F#. Specifically made as a learning resource when building apps with the SAFE stack. This application features many concerns of large apps such as logging, database access, secured remoting, web sockets and much more.
SAFE Bookstore
This sample demonstrates many of the useful features of a larger SAFE application, including login authentication using JWT tokens, automated deployment via Docker and SEO support with urls for pages. It also includes an example of using Azure Storage tables as a persistence store.
SAFE ConfPlanner
This sample demonstrates how to build and share a complex domain model in SAFE across client and server, along with the use of websockets for a "reactive" UI support push notifications. It also demonstrates the use of F#'s flexible mailbox processors to implement an event-driven architecture.
SAFE Search
This repository shows how to use Azure services to implement a SAFE application that supports searching over multiple data sources with support for find-ahead typing and throttling. The application uses a combination of Azure Search and Azure Storage Tables to construct a large search index that can rapidly find results in a number of ways.
SAFE Chat
This application is a real-time chat application built on SAFE that uses the AKKA framework to manage actors that represent chat users, including Akka Streams and the Akkling F# library.
SAFE Nightwatch
This application is a sample mobile application using the React Native library, built on top of the SAFE stack. React Native permits a very similar programming when writing SAFE applications as browser applications, so the experience should be very familiar to you.
Videos
- SAFE apps with F# web stack at Lambda Days 2018 (Tomasz Heimowski)
- Modern app development with Fable and React Native at NDC Oslo 2017 (Steffen Forkmann)
- Reinventing MVC pattern for F# web development at NDC Oslo 2018 (Krzysztof Cieslak)
Other Resources
- The Hanselminutes podcast: F# and the functional SAFE Stack with Krzysztof Cieslak
- Introducing Fable.Remoting: Automated Type-Safe Client-Server Communication for Fable Apps
- Learning about the F# SAFE stack High level introduction to the SAFE stack by Scott Hanselman