This section contains useful repositories that allow you to learn more about the SAFE stack, at your own pace.
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.
The following example repositories (and more!) can be found in the official SAFE Stack organisational GitHub page.
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.
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.
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.
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.
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.
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.
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.
- SAFE apps with F# web stack at F# Exchange 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)
- 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