add-on $20/mo gem "avo-kanban"

Kanban

A Rails Kanban board for your admin: drag cards between columns and the record updates.

What it does

avo-kanban

Give 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 install scaffolds the board, column, and item resources, controllers, and migration
  • Decide what belongs on a board with the allowed_resources setting, then add cards from each resource's own search, with exclude_duplicates to 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.

ready to ship?

You ship it this afternoon. We keep it solid for years.