redux-xstate-poc
fresh
Our great sponsors
redux-xstate-poc | fresh | |
---|---|---|
6 | 124 | |
89 | 11,849 | |
- | 1.3% | |
2.6 | 9.7 | |
over 2 years ago | 7 days ago | |
TypeScript | TypeScript | |
- | 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.
redux-xstate-poc
-
JavaScript State Machines and Statecharts
Very doable, but not the most ideal syntax, since `createSlice` is focused on "here's an action / thing that happened, here's the reducer that handles that".
On the flip side, you can also use XState state machines as Redux reducers. A state machine is, after all, a function that takes a current state value + some event, and returns a new state.... exactly the same as a reducer function!
David and I have been saying for a while that we'd like to have a more official integration between XState and Redux. A while back, Matt Pocock put together an proof of concept for what a `createXStateSlice` might look like [1]. I actually sat down with David a couple weeks ago and we did some further design discussions about the possibility of using the `@xstate/fsm` package (a smaller version of XState's logic) as a starting point, and generating RTK actions based on that. No code yet, but it seems feasible.
[0] https://dev.to/davidkpiano/redux-is-half-of-a-pattern-1-2-1h...
[1] https://github.com/mattpocock/redux-xstate-poc
-
The new wave of React state management
Fun fact: one of the XState devs did a proof-of-concept showing how to use XState state machines as Redux reducers and integrate the side effects handling as a middleware:
https://github.com/mattpocock/redux-xstate-poc
We'd like to work together to turn that into a more official integration sometime soon.
- Writing React components with State Machines.
-
What does a large XState / Robot3 / FSM-based application architecture look like?
One of the XState devs recently posted https://github.com/mattpocock/redux-xstate-poc , an example of how you can integrate XState into a Redux app for use as a Redux slice reducer + side effects middleware
- @xstate/redux: Official proposal for an XState middleware for Redux
fresh
-
What's Your Favorite Tech Stack and Why?
Deno: Deno with one of it's frameworks (like Fresh
-
🧠 50 Articles to Level Up
The road to Fresh 2.0 (https://github.com/denoland/fresh/issues/2363) by Marvin Hagemeister Can't wait for seeing the end of the road! All in all great changes ahead.
- The Road to Fresh 2.0
-
Fly.it Has GPUs Now
Because I have secret magical powers that you probably don't, it's basically free for me. Here's the breakdown though:
The application server uses Deno and Fresh (https://fresh.deno.dev) and requires a shared-1x CPU at 512 MB of ram. That's $3.19 per month as-is. It also uses 2GB of disk volume, which would cost $0.30 per month.
As far as post generation goes: when I first set it up it used GPT-3.5 Turbo to generate prose. That cost me rounding error per month (maybe like $0.05?). At some point I upgraded it to GPT-4 Turbo for free-because-I-got-OpenAI-credits-on-the-drama-day reasons. The prose level increase wasn't significant.
With the GPU it has now, a cold load of the model and prose generation run takes about 1.5 minutes. If I didn't have reasons to keep that machine pinned to a GPU (involving other ridiculous ventures), it would probably cost about 5 minutes per day (increased the time to make the math easier) of GPU time with a 40 GB volume (I now use Nous Hermes Mixtral at Q5_K_M precision, so about 32 GB of weights), so something like $6 per month for the volume and 2.5 hours of GPU time, or about $6.25 per month on an L40s.
In total it's probably something like $15.75 per month. That's a fair bit on paper, but I have certain arrangements that make it significantly less cheap for me. I could re-architect Arsène to not have to be online 24/7, but it's frankly not worth it when the big cost is the GPU time and weights volume. I don't know of a way to make that better without sacrificing model quality more than I have to.
For a shitpost though, I think it'd totally worth it to pay that much. It's kinda hilarious and I feel like it makes for a decent display of how bad things could get if we go full "AI replaces writers" like some people seem to want for some reason I can't even begin to understand.
I still think it's funny that I have to explicitly tell people to not take financial advice from it, because if I didn't then they will.
-
Deno in 2023
Deno has also created a Next.js competitor, Fresh. I found it a few weeks ago and am starting to go through the docs, looks like a good overall concept. https://fresh.deno.dev/
- React is actively harmful if your website is static
-
We need an official backend web framework
https://fresh.deno.dev/ - Fresh embraces the tried and true design of server side rendering and progressive enhancement on the client side.
-
Hacktoberfest 2023 Recap
Along the way, I not only got the oppurtunity to revise old concepts that had blurred in my memory, but also learnt about new technologies like Fresh.js, a framework from Deno (a js runtime engine) that uses Preact, a React Routing library and used Chakra UI for the first time.
-
Why Can't I Just Use This Function? The Struggles with Code Reusability in JS
A whole project might be released as a server or framework. Frameworks like fresh, and astro) both have had things deep within them that I've wanted to reuse, within fresh it's the esbuild configuration, and islands functionality, and within astro it's the rendering of astro files themselves.
-
JavaScript First, Then TypeScript
The Fresh framework by Deno cited an improved developer experience due to tighter feedback loops.
What are some alternatives?
yieldmachine - Components for State Machines, using Generator Functions
astro - The web framework for content-driven websites. ⭐️ Star to support our work!
devtools - Replay.io DevTools
remix - Build Better Websites. Create modern, resilient user experiences with web fundamentals.
vuex - 🗃️ Centralized State Management for Vue.js.
qwik - Instant-loading web apps, without effort
Dn-FamiTra
SvelteKit - web development, streamlined
rfcs - RFCs for XState and Stately tools
Next.js - The React Framework
redux-easy-mode - A very easy to understand and use set of tools for Redux. Includes action builders, reducer builders, side-effect middleware, and async actions.
htmx - </> htmx - high power tools for HTML