What it does
avo-kanbanGive your team a Rails Kanban board where work moves by dragging it, not by editing a status field one record at a time. Kanban turns any Avo resource into cards you can drag between columns, and every move writes straight back to the database: each board tracks one property on your records, the columns are that property's values (Backlog, In Progress, Done), and dropping a card in a new column updates the record and remembers its position.
A column connects to your models polymorphically, so one board can hold more
than one resource type at once, the way GitHub Projects mixes issues and pull
requests. You pick which resources a board accepts with the
allowed_resources
setting, add cards through the resource's own search, and reorder columns and
items with drag-and-drop backed by acts_as_list.
A board view, the persistence, the drag interactions, and the authorization
hooks are a lot of moving parts: here they are already built and vetted, and
your agent runs one generator instead.
What you get
-
Move work by dragging it instead of editing a status field one record at a time: drag cards between columns, with positions persisted via
acts_as_list - Trust the board to match the data: each board tracks one record property, so a drop into a new column updates that property and remembers the card's place
- Run one board across more than one kind of record, the way GitHub Projects mixes issues and pull requests, with polymorphic columns
-
A running board from one command:
rails generate avo:kanban installscaffolds the board, column, and item resources, controllers, and migration -
Decide what belongs on a board with the
allowed_resourcessetting, then add cards from each resource's own search, withexclude_duplicatesto keep a record from landing on the board twice -
Make cards look like your domain, not a generic tile, by ejecting
Avo::Kanban::Items::ItemComponent -
Keep each board and action to the right people with
Avo::Kanban::BoardPolicy(show?,edit?,add_column?,add_item?,manage_column?)
Why it pays off
- Ship a working board this afternoon instead of speccing the drag interactions, the position bookkeeping, and the polymorphic data model over a sprint.
- The reordering, persistence, and authorization are the parts that break quietly later. Here they are built for many apps, reviewed by people, and fixed once for everyone.
- Every Avo release makes it better: the board, drag-and-drop, and columns keep working through upgrades, so the board your agent set up never gets stranded.
- Tokens, time, and focus go to your product, not to a board generated from scratch in every app.
Questions
How do I add a Kanban board to a Rails app?
Add the avo-kanban gem, run rails generate avo:kanban install and rails db:migrate, then create a board from the Boards resource and add it to your menu. The generator writes the board, column and item resources and the migration; acts_as_list and hotwire_combobox come with the gem. Kanban is in beta, and the docs say what is still moving.
What happens to the record when someone moves a card?
Each board tracks one property on your records, such as status, and each column has a value. Dropping a card in the Done column writes done to that record and remembers the card's position. A model without a matching column can use a virtual property with a getter and setter.
Who can see and move cards?
Boards use a Pundit policy, Avo::Kanban::BoardPolicy, with show?, edit?, add_column?, add_item? and manage_column?. A card only shows up if its record is inside that resource's policy scope, and moving it needs update? on the record, so the board never lets someone change what they couldn't change on the record itself.