Who here remembers Stores from Svelte 4?

// counter.ts
import { writable } from 'svelte/store';

export const count = writable(0);

In Svelte 5, Stores are out and Runes are in. Universal reactivity baby!

// counter.svelte.ts
export const count = $state({ value: 0 });

The problem is there are too many different ways to share state across modules.

Basically, after extensive experimentation, I'd suggest ... just use classes.

They're fine, flexible, fun!

// counter.svelte.ts
class Counter {
  value = $state(0);
  doubled = $derived(this.value * 2);
}

export const counter = new Counter();

That's it! That's my recommendation.

Maybe I'll expand on reasoning etc later, when I have more time.

Peace out ✌️