Fun and simple reactivity
See the codeReactivity that stays JavaScript.
Starbeam lets you mark the root state that changes, then build domain-shaped functions, classes, getters, methods, and collections around it as ordinary JavaScript.
Reactive objects and collections keep their JavaScript and TypeScript surface: a
reactive Map<K, V> is still a Map<K, V>, and a reactive object is still typed
as the object you passed in.
Your public model can look like your app:
cart.totalCentssession.userNamesize.widthform.isValidThe reactive boundary stays small. Root state is marked; the rest of the model stays inspectable JavaScript.
Framework-neutral models usually start with:
pnpm add @starbeam/universal @starbeam/collections
Framework apps add the adapter for the framework that owns rendering:
@starbeam/react@starbeam/preact@starbeam/ember@starbeam/vue@starbeam/svelteThe current Svelte adapter is a focused Svelte 5 slice: experimental
fromStarbeam() reads and attachment-backed element resources. Component
resources and app-scoped service helpers are not exposed yet.
See Install Starbeam for the package chooser.
TypeScript
59.4%
HTML
29.5%
JavaScript
6.1%
Astro
3.8%
CSS
1.1%
Fun and simple reactivity
See the codeReactivity that stays JavaScript.
Starbeam lets you mark the root state that changes, then build domain-shaped functions, classes, getters, methods, and collections around it as ordinary JavaScript.
Reactive objects and collections keep their JavaScript and TypeScript surface: a
reactive Map<K, V> is still a Map<K, V>, and a reactive object is still typed
as the object you passed in.
Your public model can look like your app:
cart.totalCentssession.userNamesize.widthform.isValidThe reactive boundary stays small. Root state is marked; the rest of the model stays inspectable JavaScript.
Framework-neutral models usually start with:
pnpm add @starbeam/universal @starbeam/collections
Framework apps add the adapter for the framework that owns rendering:
@starbeam/react@starbeam/preact@starbeam/ember@starbeam/vue@starbeam/svelteThe current Svelte adapter is a focused Svelte 5 slice: experimental
fromStarbeam() reads and attachment-backed element resources. Component
resources and app-scoped service helpers are not exposed yet.
See Install Starbeam for the package chooser.
TypeScript
59.4%
HTML
29.5%
JavaScript
6.1%
Astro
3.8%
CSS
1.1%