Cinder v0.9.0-beta.3

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

user_table.html.heex
<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

Phoenix LiveView 1.0+ Ash Framework 3.0+ Elixir 1.17+

Ready to see it in action?

Explore the Playground