The glass slipper for your Ash data
Data display that just works
A LiveView component for displaying Ash resources as tables, lists, or grids. Cinder figures out the sensible defaults for filters, sorting, and pagination so you can focus on the bits that actually matter.
This is a complete, working data table
<Cinder.collection resource={MyApp.User} actor={@current_user}>
<:col :let={user} field="name" filter sort>{user.name}</:col>
<:col :let={user} field="email" filter>{user.email}</:col>
<:col :let={user} field="role" filter>{user.role}</:col>
</Cinder.collection>
Filters, sorting, pagination โ all included. No event handlers to write.
Features
Intelligent Filters
Cinder reads your Ash attributes and picks the right filter type. Enums become selects, dates become range pickers, booleans become checkboxes.
Multiple Layouts
Table, List, and Grid layouts. Same filtering and sorting logic, different presentation. Switch with one attribute.
Relationships
Use dot notation for related fields (user.department.name). Filter and sort across associations.
Keyset Pagination
Offset pagination for simple cases, keyset pagination when you need performance on large datasets.
9 Built-in Themes
Modern, dark, retro, and more. Or use the DSL to build your own theme.
i18n Ready
Ships with English, Dutch, and Swedish translations. Adding more is straightforward.
Get Started
Using Igniter recommended
$ mix igniter.install cinder
Manual Installation
Add to your mix.exs:
def deps do
[{:cinder, "~> 0.9"}]
end
Then run:
$ mix deps.get
$ mix cinder.install
Requirements
Ready to see it in action?
Explore the Playground