elm-ts
purescript-concur-core
elm-ts | purescript-concur-core | |
---|---|---|
2 | 3 | |
301 | 28 | |
- | - | |
0.0 | 0.0 | |
over 1 year ago | about 1 year ago | |
TypeScript | PureScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
elm-ts
-
Why and How We Retired Elm at Culture Amp
> By that time, TypeScript had grown to be capable enough (and developer-friendly enough) to balance much of what sold us on Elm originally: a usable type system, good-enough error messages, etc. React had baked in some more useful state management primitives that roughly matched Elm’s “batteries included” state management.
if you like the ideas in elm but don't want to commit to it I'd encourage you to check out elm-ts (https://gcanti.github.io/elm-ts/) It has a little bit more boilerplate than elm (I find elm to be quite verbose already!) but a better experience for individuals and teams overall, I would say. It's a good example of how "TypeScript had grown to be capable enough (and developer-friendly enough) to balance much of what sold us on Elm originally: a usable type system.."
-
Flame: A PureScript front-end framework inspired by the Elm architecture
FWIW this post is about PureScript, not Elm. The library is an implementation of the Elm Architecture in PureScript. Elm is a language. The framework that goes along with it is called "The Elm Architecture". The Architecture can be implemented in any language. Here's an implementation in TypeScript: https://github.com/gcanti/elm-ts
purescript-concur-core
-
Flame: A PureScript front-end framework inspired by the Elm architecture
1. Application wide state is easy since you can always access state from parent components in child components. The problem occurs when you want to update parent state from child components.
Fortunately, you can make your own abstractions in Concur. For example, you can use a "Wire" - which lets multiple child components share and update parts of the parent's state (https://github.com/purescript-concur/purescript-concur-core/...). Note how this abstraction just uses the high level Concur API, and doesn't depend on the UI backend. With a wire the code might look something like this -
-- A wire into parent's state, accessible using `with`, and updateable using `wire.send`
-
Shpadoinkle UI: Web development for Haskell
Have you looked at signals? AFAICT they are exactly what you are looking for. A signal is just Cofree widget (https://github.com/purescript-concur/purescript-concur-core/blob/master/src/Concur/Core/FRP.purs#L26).
What are some alternatives?
purescript-flame - Fast & simple framework for building web applications
purescript-concur-react - Concur UI Framework for Purescript
Elm - Compiler for Elm, a functional language for reliable webapps.
rxjs-hooks - React hooks for RxJS
shpadoinkle
fp-ts-rxjs - fp-ts bindings for RxJS
purescript-concur-streaming-poc - A small POC for Concur async streaming without Free or Aff
fp-army-knife - 100% 🪖 code covered Functional programming 🔪 army knife
Cycle.js - A functional and reactive JavaScript framework for predictable code
purescript-refract - Optical Purescript UI library based on React and the Elm architecture, but without the boilerplate.