vani-async-client-only
from itsjavi/vani
🍦 A Web-standards-first UI runtime with explicit updates and localized DOM ownership. JS-first, no Virtual DOM, no compiler steps. SSR-ready.
1 stars0 forksUpdated Jan 26, 2026
npx skills add https://github.com/itsjavi/vani --skill vani-async-client-onlySKILL.md
Async Components and Client-Only Islands
Instructions for async components with fallbacks and client-only rendering.
When to Use
Use this when a component needs async setup or when a section should render only on the client.
Steps
- Define a component that returns a Promise of a render function.
- Provide a
fallbackrender function for DOM mode while async work runs. - Use
clientOnly: trueto skip SSR for a component and render it on the client. - Keep explicit updates for any local state changes after load.
Arguments
- componentName - async component name (defaults to
AsyncCard) - includeFallback - whether to include a fallback (defaults to
true) - clientOnly - whether to mark the component as client-only (defaults to
false)
Examples
Example 1 usage pattern:
Render an async card with a loading fallback, then resolve to content.
Example 2 usage pattern:
Render a client-only widget inside an SSR page using clientOnly: true.
Output
Example output:
Created: src/async-card.ts
Notes: Fallback renders in DOM mode; SSR awaits async components.
Present Results to User
Clarify when the fallback appears, how client-only rendering behaves, and list file changes.
Repository
itsjavi/vaniParent repository
Repository Stats
Stars1
Forks0
LicenseMIT License