The SAFE Stack is an end-to-end, functional-first stack for cloud-ready web development that emphasizes type-safe programming. The SAFE stack allows you to develop web applications almost entirely in F#, without needing to compromise and shoehorn your codebase into an object-oriented framework or library, and without needing you to be an expert in CSS or HTML to create compelling, rich client-side web applications.
SAFE Stack isn't a "closed project" either - it's open source, free, and plays nicely with industry standard tools and libraries, such as the .NET Core ecosystem (including ASP .NET Core) and the Javascript ecosystem (including Webpack, NPM, Yarn, and Babel). You can read up more on SAFE Stack here.
1. The best way to write web applications
We really believe that the SAFE stack is simply the best way to develop modern web applications. Unlike other web stacks that force functional programmers to "fit" their designs into an object-oriented framework, SAFE Stack takes advantage of FP principles wherever possible, with no compromises necessary. This means you can use features native to F# such as pipeline, currying, union types and pattern matching to create applications that you can be confident of, whilst still making use of the huge ecosystem on .NET Core and Javascript out there. Write reliable applications quickly, without giving up all the libraries out there - the best of both worlds!
2. Take advantage of the existing web ecosystem
SAFE is not about reinventing the wheel and starting from scratch. Instead, SAFE takes advantage of existing, mature and battle-tested technologies that are used and developed by industry giants such as Facebook and Microsoft, and presenting them in a type-safe, powerful and productive shell that takes advantage of functional programming principles. For example, the client side of SAFE has deep integration with the Javascript ecosystem, so you can easily interact and interoperate with the many thousands of existing libraries and tools out there - there's no need to throw away all your charting and grid controls that you already know. Instead, you can continue to use them whilst taking advantage of the strong type system and powerful features that F# offers you.
3. Cross Platform
SAFE Stack runs your F# on a combination of .NET Core and Javascript ecosystems - both cross platform, open source technologies. So whether you're using Windows, Mac OS or Linux, you can choose to run your applications of the operating system of your choice, and rely on a variety of IDEs and tools available to help you write code productively from day one on your development machine.
4. Fully supported by Microsoft
The SAFE Stack web server lives on top of ASP .NET Core - Microsoft's lightweight, high performance and reliable web server technology and F#. Both are core technologies in the .NET Core platform that Microsoft is committed to continue to invest in. Microsoft even run nightly tests against the SAFE Stack platform itself - giving us confidence that SAFE Stack will continue to run on the latest versions of .NET Core.
5. Cloud-ready
SAFE Stack was designed from the ground up to run on the cloud and take advantage of the new and exciting services and opportunties that it affords, whether it's Azure, Amazon or Google. For example, on the Azure side we have full support for automation technologies such as Azure's App Service, with Resource Manager templates and logging built-in. And if you're a fan of containers, we have you covered with ready-made support for Docker and Kubernetes.
6. Community-led
The SAFE Stack project is not something that's been created by any individual or company. Instead, it's a natural evolution of a number of separate technologies and projects that SAFE brings together in a cohesive manner. The different elements of the core F# development stack, such as Saturn, Giraffe, Fable and Elmish are all open-source, free and community-led; all development and planning is done in the open with full community involvement and interaction.
7. Professionally supported
One of the reasons that the SAFE Stack initiative began was because people were already using the core technologies that formed SAFE - technologies such as Saturn, Giraffe and Fable. However, there were no companies offering professional support, which made it more difficult for some organisations to adopt SAFE. So in addition to the rich and growing documentation here are now a number of different organisations offering professional support services. For example, we at Compositional IT offer 1- and 2-day training courses and ongoing coaching, as well as support and development services.
How do I start using SAFE Stack today?
I want to create a "bare bones" application!
Install the SAFE Template to create your own SAFE applications (5 minutes).
I want to experience the full SAFE Stack development experience!
Try out our SAFE Dojo tutorial project and create a data mashup web application which integrates with third party data and UI controls (~2 hours).
Ok, I'm excited - I want to find out more!
Contact Us to arrange a free consultation by phone or web or discuss how you can start to use the SAFE Stack in your organisation today - we're happy to answer any questions or demonstrate the SAFE Stack in more details!