State Management

Horn does not force a global store library.

useState()

Use useState() for framework-managed shared state that should survive hydration.

const counter = useState('counter', () => 0)

On the server, Horn creates a request-scoped state store. On the client, that state is hydrated from the SSR payload.

External stores

You can still use Pinia or any other Vue store solution. Horn does not reserve that layer. Use app/app.vue to install providers if you need them globally.