Alva provides a fully typed, auto-generated TypeScript SDK for Vue 3 that seamlessly bridges your Vue frontend with your Elixir/Ash backend via Phoenix.LiveView.

Overview

Alva eliminates the need for manual API routing, REST endpoints, or GraphQL resolvers. By directly connecting Ash Resources to LiveVue, Alva allows you to execute actions, read streams, process uploads, and listen to PubSub signals directly from the frontend, all with end-to-end TypeScript safety.

Core Components

  • Alva.Resource: An Ash DSL extension to expose specific backend actions and signals to the frontend.
  • Alva.LiveView: A macro to inject auto-syncing data streams and upload handlers into Phoenix LiveViews.
  • mix alva.codegen: The mix task that reads your backend configuration and outputs a strict TypeScript API.

For detailed walkthroughs, see the module documentation for Alva.Resource and Alva.LiveView, or the Getting Started guide.