Mishka Gervaz reads an Ash resource and generates the Phoenix LiveView admin (tables, forms and everything around them) from a short DSL. No hand-written UI.
Flip a knob and the DSL on the left and the admin on the right update together.
mishka_gervaz do table do # + identity: name, route columns do auto_columns except: []column , sortable: column column end pagination type: end form do # + uploads: upload :avatar fields do field :name, :text, required: true field :role, :select field :avatar, :upload end layout do mode end end end
Add the DSL to any Ash resource. Gervaz reads your attributes, actions and relationships.
A few lines describe columns, filters, fields and layout. Field types and options are inferred from Ash.
Mount its LiveComponent in a LiveView: sortable, filterable, validated, uploads and real-time.
Columns, sort, filters, pagination, bulk & row actions, archive, all declarative.
22 field types: text, select, upload, relation, nested maps, combobox and more.
Split a form into steps, wizard or tabs mode, with one layout block.
Driven by your Ash actions. Field-level errors surface automatically on change.
Wire pubsub and rows update live. No manual subscriptions, no polling.
Drop-zone or button, multi-file, auto-namespaced, existing-file management.
Filters, sort, page and search load from the URL; set mode :bidirectional and copy-link just works.
Change one callback, wire a module, or swap a whole subsystem. No fork.
The render layer is a swappable adapter. Tailwind ships in, Mishka Chelekom drops in, your own kit slots in. Mix them per resource or per component.
The same admin drives a different Ash action depending on who's signed in. Master users act across every tenant with restore & soft-archive rights; tenant users see only their own scope. Toggle the actor →
Mishka Gervaz turns an Ash resource into a Phoenix LiveView admin: tables, filters and forms from one DSL. Here is how it compares with LiveAdmin, Backpex and Cinder.
✓ built in · ~ partial, or you wire it yourself · ✕ not provided. Checked in October 2026 against the READMEs and docs of LiveAdmin, Backpex (Ash through the community ash_backpex package) and Cinder. None of the four has a stable 1.0 release yet.
{:mishka_gervaz, "~> 0.0.1"}
Release notes, DSL recipes and product updates from the team building Mishka. No spam, unsubscribe anytime.