Revamp homepage
isaacabraham opened this issue · 7 comments
Based on discussions at F#Ex, we should make changes to the homepage to better clarify the "current" opinionated of the SAFE stack.
Additionally, we should provide tangible benefits of using SAFE directly on the homepage e.g.
- Extremely rapid development cycle
- Code sharing between client and server
- Enables front-end development for people without HTML, JS and CSS expertise
- Reuse F# skills for front-end applications
- Support for both SPA and server side-rendered models
etc. etc.
@forki @Krzysztof-Cieslak @alfonsogarciacaro @theimowski thoughts?
Makes sense, would you put it all in the single long-scrolling page or rather extract sub pages for each section?
I envision the homepage including some code snippets screenshots or something that can grab people's attention - so maybe just two or three of these - and then in the introduction documentation have more details.
I agree with you, we also have to add a link to @theimowski's talk so people can see how programming with the stack really looks like :)
I really like how fast and well they published this video, but it might put off some new-comers that you need to login to watch it
Something else (that would be more work) would be to do the same application "journey" but as a series of "micro-videos" (I think @bruinbrown had this idea a while back) e.g. "creating an empty SAFE app", "creating an endpoint", or "disabling a button" etc. etc. - that would build up into the app. These could be hosted on e.g. YouTube and linked from the main SAFE site.
But this would almost certainly be a larger piece of work (and would probably go out of date more quickly as new versions of tech in the stack happen), and perhaps something that we could either start small and / or do as part of CIT / Lambda Factory commercial work.
Thoughts?
I am really happy to see all this happening! This is so important.
I have started documentation on a few things of SAFE for myself already. It is not tutorial style, more recipe-like. This kind of documentation is as important as good tutorials IMO.
@alfonsogarciacaro @theimowski
Absolutely make that great video very prominent on the SAFE page!
@isaacabraham
A video guide like this towards clean and rapid app development would be great. I also would like the concept of different paths to choose from (for any kind of tutorial). A JavaScript React developer and a .NET developer will probably want to approach SAFE from different angles. I also had a idea like this for my own talk, so that people have a good follow up experience the days after the talk. However, I think this should only be done when everything around SAFE is in a really stable state and there are no more breaking changes in templates, tooling, etc.
I attend a meetup in Lucerne to watch fsharpconf. Fantastic lineup, absolutely everything on is relevant to me, so it might be a long night next Monday 😄
Let's take the SAFE stack even further
I am currently doing WIP on how to best do Elmish Components, i.e. how to declare them, how to organize code sharing and packaging and distribution. I think the SAFE stack should be even extended and advertise Elmish as a universal UI layer for maximum code sharing from within the same solution. That can and should also incorporate WPF and Xamarin.Forms, since those are valuable additional assets when targeting .NET audiences. They can reuse their knowledge (XAML) for getting onboard quickly with Elmish. Once they know and love it, they realise that they can reuse the Elmish logic and stay within the same abstraction for a nice React Webapp with Fable. I bet they will like it really hard. And they will like it even harder, when they realise that this does not stop for server development and that they can share the domain logic even further with server code, additionally to the 4 different native client apps.
They love .NET, hate JavaScript and start to feel the need to also be able to make nice, beautiful web apps. I never saw a more real need and use case for F# than that ever.
https://github.com/Prolucid/Elmish.WPF
https://github.com/fsprojects/Elmish.XamarinForms
A universal functional UI layer is important for all of F#. Functional type design and domain modelling can be fitted into the bigger picture a lot better with a UI layer that does not act as a showstopper for the functional goodness. When hitting MVVM you basically have to invert your thinking back again to classical OO concepts on the architectural level. It is still good because F# is so great for programming in the small but it should be and could be a lot more with Elmish.
I am giving a talk in Zurich in Summer on this topic and I want it to become absolutely great. I will make a Mario Kart 8 Stats Calculator to demonstrate that in 2018, with F#, Fable and .NETStandard you can have 80% native code sharing for basically anything. Goes without saying that every single clue technology like this must get proper maintenance to work perfectly. I am very willing to help with and by summer I will probably know most or all of the existing problems they have.