JUXT Blog - Learn You a ClojureScript for Great Good!

This page summarizes the projects mentioned and recommended in the original post on /r/Clojure

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • elm-sortable-table

    Discontinued Sortable tables for whatever data you want to display

  • That's true for complex apps but if your app is complex having effects everywhere doesn't make it easier to understand, in my experience. If having one big reducer is scary you can always split the reducer into multiple functions. If the app has separate "modules" each one of them can have their own reducer and effects. Using recoil you can decide wether these separate modules have each one their own state/atom or they all link to one big app state atom using selectors. It's a one line change to switch between the two and that's why I quite like recoil. If you squint, it looks a bit like how Elm creates reusable components, each one with their Model View Update, e.g. https://github.com/evancz/elm-sortable-table/tree/1.0.1

  • useEffectReducer

    Discontinued useReducer + useEffect = useEffectReducer

  • So it's like you say: it's a pattern that ensures a uniform style across the app. There's also the other end of the spectrum with frameworks like Relay and Fulcro that have their place and optimise all the data fetching, but I believe this pattern sits comfortably in the middle and scales a lot and at the same time it's not overkill for smaller apps. Now, you can do all that without adding effects to a queue. You can use useEffectReducer and perform them directly. I just prefer to be explicit about it and I think it has a lot of benefits. Definitely not The One True Way but something worth trying.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • posh

    A luxuriously simple and powerful way to make front-ends with DataScript and Reagent in Clojure.

  • I think we can do better than the status quo. Especially in ClojureScript. I look at projects like posh and there's so much potential. It requires a change in mindset: if we think of components as objects that do things I think we stay trapped in this local optimum.

  • speccards

    Example of using clojure.spec with devcards

  • Also: if the state is all in one place you can do pretty cool things like use generative tests to make a bunch of valid ui states and mount them on devcards to see if something breaks speccards. You can take a snapshot of the whole state in prod and try and debug it locally.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts