Back

The front end framework for correctness: built on Effect, architected like Elm

32 points2 hoursfoldkit.dev
Etheryte1 hour ago

I don't know, as far as I can tell the demo on the homepage is bugged? Or maybe I misunderstand how it's supposed to work? If I click reset after 2 seconds and then click add 1 right after it, the reset never fires. What's up with that, that's not what I expected to happen?

speedgoose34 minutes ago

I guess it comes from the `tagsExhaustive` keyword. But I tried to search what it does in the documentation, and it doesn't return any hit. I then searched in the git repository and found it in some examples and CLAUDE.md but it doesn't really seem straightforward.

Perhaps it makes sense for AI agents, but as a human, I will pass.

zdragnar30 minutes ago

The whole setup reminded me of the mess people would make with RxJS, and this comment chain seems to indicate it's got the same drawbacks.

danfritz1 hour ago

Yep, it seems that if you hammer messages things get easily dropped or the async behavior is not executed.

IMO the reset should fire regardless what happens after it.

airstrike40 minutes ago

Yeah, I can see how some scenarios might want that behavior, but it sort of defeats the purpose of the demo. It wouldn't hurt to have the reset be cancelable too if you wanted to really showcase how it should work

rramon1 hour ago

Just wondering how a matching backend framework for correctness would look like. Ideally something that doesn't repeat the React mess with two routers but fits right in Inertia style.

danfritz1 hour ago

This feels a lot like sagas and redux sagas. Anyone else got that vibe?

SinParadise26 minutes ago

Its the same "solved" pattern, but with the pattern being more deeply rooted in a project.

satvikpendem44 minutes ago

How is Effect, for those who have used it? It's good that algebraic effects are becoming more mainstream.

epolanski25 minutes ago

I use it from years, it's the only sane way to write typescript.

The learning curve is steep tho.

In any case it's a hard technology to sell, you don't appreciate it from hello worlds. In fact you hate it for trivial programs.

It shows it's benefits at scale.

Lots of tools like T3 and opencode use it at their core because they solve non trivial problems made of queues, retries, dependency injection, schemas, etc.

lxe37 minutes ago

Is it just me? But every time I use a paradigm of global immutable state, almost always I run into edge cases where practically it falls apart either semantically (mental model explosion) or creates performance issues, whether they stem from architectural problems with the framework itself, or just the way computers operate.

css_apologist23 minutes ago

its a trade off for sure

but my experience working with elm is that things just work almost always the first time

if they can bring that over, many will take that trade off

yes somethings are harder to express, but its subjective if its a bad thing given the correctness guarantees

i haven't firmly run into the perf ceiling myself, but yes it is obviously there for more interactive apps

epolanski26 minutes ago

I love both effect and elm, but I cannot swallow yet another Vue/React crap.

Especially after having used ruby and elixir extensively after years of react/Vue crap, it feels so backwards.

dflock1 hour ago

This looks interesting, and I've been keeping an eye on this for a while - but does anyone have experience from actually using this for real?

hnsmomdpvp1 hour ago

Finally someone said it

oofbey1 hour ago

As agentic coding matures, this kind of project is the right direction. The mechanics of writing the code become less important. But having a language framework that naturally resists mistakes will become increasingly useful and important.

Similar to how Rust is obviously a better choice today than C++. Who cares if the language is “more difficult” to code in, if the agents are doing the coding. What we need is building blocks that make it harder to author bugs.

dflock1 hour ago

That's an interesting - and maybe correct - point. Looking at the examples, it seems very long winded and not something I would want to write myself - but maybe I don't need to care about that anymore, as you say!

triyambakam41 minutes ago

I was thinking about agentic coding as well and a few years ago I probably would have really been interested in this project. But now it sits at a lower abstraction where I care less since the agent is the one managing it. It's strange

whattheheckheck1 hour ago

And tla+ / sequence diagram / user flow diagrams / data models all in one "thing"