Cross-node bus: finally, pub/sub that actually crosses nodes
FuryStack now ships a real cross-node event bus and a Redis Streams adapter, so identity invalidation and entity sync finally work across pods instead of just within one lonely process.
A collection of 20 posts
FuryStack now ships a real cross-node event bus and a Redis Streams adapter, so identity invalidation and entity sync finally work across pods instead of just within one lonely process.
The latest FuryStack update throws @Injectable in the bin, replaces classes with tokens, and finally clears the runway for the next big TypeScript upgrade. Here's what changed and why your @Injected properties are about to get really lonely.
How FuryStack turns Yarn deferred versioning into changelog entries without guessing, vibes, or heroic memory.
Polling is dead, long live push. FuryStack's entity sync system gives you real-time, server-pushed updates over WebSocket — with delta replay, reference counting, auto-reconnect, and a state machine that actually makes sense.
FuryStack's @furystack/cache isn't your grandmother's memoization wrapper — it's a full state machine with observable entries, stale/cache timers, capacity eviction, and a UI component that renders it all for you.
FuryStack Shades ships 19 themes, 90+ CSS variables, scoped nesting, and a ThemeProviderService that turns your entire design system into a runtime dial — here's how it actually works under the hood.
The old flat Router served us well, but it's time to talk about its successor — NestedRouter brings hierarchical routes, type-safe links, automatic breadcrumbs, navigation trees, and view transitions to Shades.
The Shades Showcase App went from a humble component demo to a 60+ page, 19-theme, fully-routed component museum — and it only took two months.
Shades v12 replaces the rendering engine with a VNode-based reconciler and drops lifecycle callbacks in favor of hooks — here's the full story.
The FuryStack site has been completely rebuilt with Astro 5 — here's why we moved on from Gatsby and what we gained.
Updates on Shades - Kick-ass DataGrid updates, fragments and a brand new Showcase app
Using extension methods was fun at the beginning but I've ran into more and more problems with them
We have a strongly typed REST API interface with build-time type checking. Can we build runtime validation with a minimal effort? (Spoiler alert - yesss)
Designing and implementing APIs can be hard and consuming them can be frustrating, if they doesn't work as expected. REST API as a Typescript interface to the rescue!
A Repository is the next layer above the data stores. When setting up a repository, you can create DataSets that can rely on a previously configured physical store. The difference is that while PhysicalStore focuses on the data, DataSet focuses on business logic. You can authorize, check permissions, subscribe to entity changes, etc...
Where should you store your data? SQL, NOSQL, InMemory or on a sticky note on the back of your pillow? Doesn't matter if you have a PhysicalStore implementation...
Dependency injection and Inversion of control is a common practice that tries to protect you from insanity that would happen when you realize that you can't refactor and test a giant global static app structure. @furystack/inject is a simple but powerful tool that you can use in NodeJs and in the browser.
So this framework really kicks ass? And how can I start using it?
The old site has been changed to Gatsby. Interested why?