Engine portability
The same filter state, in both stacks
Every vertical reads its state from the same ?f parameter, through a serializer whose
decode detects its own format tag. A link built here opens in any of them — React, Vue, Svelte,
Angular, or no framework at all — and reproduces the identical result set.
preset · Bold reds
h~{"label":"bold reds · under $25 · 88+ points","rules":[{"id":"color","rule":{"config":{"set":["red"]},"field":"color","type":"InSetRule"}},{"id":"points","rule":{"config":{"max":100,"min":88},"field":"points","type":"RangeRule"}},{"id":"price","rule":{"config":{"max":25,"min":0},"field":"priceUsd","type":"RangeRule"}}],"version":1}- SvelteKit SvelteKit 5
Runs the isomorphic core in SvelteKit’s own server tier, with a zero-JS SSR fallback.
@filter-enginez/svelte-signalssignals - Vanilla None
/books goes through reactive-signals, /books-raw through the bare core — the pair shows what the adapter buys.
no binding — bare corenone
Links are full navigations by design: four of the six hydrate ?f only at mount, so a
client-side transition would leave their engines untouched. Back to the dataset hub