Guide to learning Fulcro

There is plenty of materials - the excellent, comprehensive Fulcro Developers Guide, many hours of the invaluable Fulcro 3 tutorial videos, Pathom documentation, and various learning resources from awesome-fulcro. Then there is RAD and its documentation. It is overwhelming. Everybody will wonder:

Where to start? How to go about learning Fulcro?

We hope this guide will be of help.

Essential guidelines for learners

Different people learn best in different ways so there is no single, best way to learn Fulcro. Somebody likes to study a lot first, somebody prefers to jump into doing as soon as possible. We will try to cater to them all. However, no matter what kind of person you are, here is one important recommendation that applies to you all:

Fulcro is likely very different from anything you have used before. You need to really understand the key concepts first, before trying to create something. Otherwise you set yourself up for many struggles.

Learning tips

Tip 1: Keep it simple!

There is a lot of functionality that Fulcro offers. Routing, UI state machines, RAD, …​ . Do not get distracted by these. Focus on using and understanding only the basic building blocks first. Once you are really comfortable with them and have internalized how the component tree, client DB, queries and idents play together and are able to build non-trivial applications with them then you can add some advanced functionality. But if you try to use too much too early you are likely to get overwhelmed and lost. So keep it simple and stick to the basics first!

Where to start?

  1. Have a brief look at awesome-fulcro so that you get an overview of what is available and can back to particular resources when you will need them

  2. Go through the Minimalist Fulcro Tutorial and its prerequisities

  3. Watch the Fulcro 3 tutorial videos - especially Parts 1 to 7 cover many of the pitfalls of getting started (Alex Eeberts' Fulcro Video Notes (i.e. table of content) (i.e. table of content) might be helpful)

  4. Read the beginning of Fulcro Developers Guide, at least up to and including "4. Getting Started"

    • Notice that the Book is essentially reference material and covers many areas and depth that you don’t need to get a general understanding of Fulcro

  5. Clone and play with fulcro-template

    • Write the most trivial things to start. If you are not feeling like you really understand query/ident/initial-state/transact/render, then don’t make more complex things until you do. There are not a lot of core concepts, and while those concepts are new they are also simple, but everything will be confusing and seem complex and hard if you don’t actually understand those 5 things.

  6. Revisit awesome-fulcro and the tutorials and troubleshooting materials it links to to check whether some of it isn’t what you need just now

  7. recur

FAQ: What about Fulcro Rapid Application Development (RAD)?

While RAD is just an add-on to Fulcro and its demo project is perhaps more up to date, it brings its own additional concepts (attributes) and constructs (reports and forms) so it might be best to wait with it until you grasp Fulcro itself. On the other hand, folks have done that before…​

As Tony explained: You should not use RAD until you understand enough Fulcro to read the source of RAD and go “Oh, I see, that’s just using this and this from Fulcro to save me some typing”.