Live data from Hacker News

Fulcro Developers Guide: Single-page full-stack web applications in clj/cljs

book.fulcrologic.com

1–10 of 66 posts

Re: Fulcro Developers Guide: Single-page full-stack web applications in clj/cljs

#3
> All of the full stack examples use a mock server embedded in the browser to simulate the interaction, but the source that you’ll read for the application is identical to what you’d write for a real server.

God, I'm loving this already. The only other framework I know that could do this for a book is Meteor.

Re: Fulcro Developers Guide: Single-page full-stack web applications in clj/cljs

#4
post #2

Somehow I got the feeling of there being a lot of boilerplate necessary to create just about anything. Still this is years ahead of the competition (excluding re-frame).

Yeah, long require forms, long namespace keywords, protocol methods... but they are all necessary so Fulcro can figure out a lot of things itself. It pays off really well because things that are often hard in other frameworks such as forms and server-client communication suddenly become easy as a result.

Re: Fulcro Developers Guide: Single-page full-stack web applications in clj/cljs

#6
In addition to the book, Fulcro has excellent docs and resources available:

* Full-stack example [0], implementing the RealWorld spec using the Walkable SQL library and the Duct server-side framework

* Fulcro's implementation [1] of UI state machines (recent HN discussion on the topic [2])

* Fulcro training video series, from the creator Tony Kay [3]

* An answer to why Fulcro [4]

* How Fulcro differs from Om [5]

* Fulcro's integration with the Semantic UI React toolkit [6]

* Where Fulcro is headed next, in v3 [7]

To me Fulcro is Clojure's missing framework. With Fulcro (and thanks to Clojure/Script), applications are composed and painted onto the screen -- this is thanks to the REPL and hot-reloading that preserves state. For a demonstration, see the Fulcro training playlist on YouTube [3].

Some personal favorite Fulcro features: (A) the built-in support viewer [8], which can take state history serialized on the client and play it back on a developer's machine (like a basic, self-hosted https://logrocket.com). (B) Workspaces [9], which is similar to https://storybook.js.org.

#fulcro is very active on the Clojurians Slack http://clojurians.net (or Zulip! https://clojureverse.org/t/introducing-clojurians-zulip/3173)

[0]: https://github.com/walkable-server/realworld-fulcro

[1]: https://github.com/fulcrologic/fulcro-incubator/blob/develop...

[2]: https://news.ycombinator.com/item?id=19268734

[3]: https://www.youtube.com/playlist?list=PLVi9lDx-4C_Rwb8LUwW4A...

[4]: http://fulcro.fulcrologic.com/benefits.html

[5]: http://fulcro.fulcrologic.com/vsom-next.html

[6]: https://github.com/fulcrologic/semantic-ui-wrapper

[7]: https://www.patreon.com/posts/fulcro-3-25683469, https://www.patreon.com/posts/incubator-23082756

[8]: http://book.fulcrologic.com/#_support_viewer

[9]: http://book.fulcrologic.com/#_workspaces

Re: Fulcro Developers Guide: Single-page full-stack web applications in clj/cljs

#9
post #3

> All of the full stack examples use a mock server embedded in the browser to simulate the interaction, but the source that you’ll read for the application is identical to what you’d write for a real server. God, I'm loving this already. The only other framework I know that could do this for a book is Meteor.

Yeah, the Meteor book was incredibly well-done. Also agreed, this looks similarly excellent.

Re: Fulcro Developers Guide: Single-page full-stack web applications in clj/cljs

#10

Can someone here elaborate what are some advantages of using fulcro vs using another stack?

Fulcro do everything that "relay" do, but:

1- you can (and it's easy) to manage the state when you need

2- operate with multiple remotes

3- talk with graphql remotes (using pathom on client)

4- easily talk with many rest remotes (using pathom on client, or create a pathom server)

5- use the components on server(JVM or Node) to SSR

6- easily use any npm deps (shadow-cljs should help), including any react component lib

7- share client and server mutations on the same file (via clojure reader macros)

...

Post reply on HN