Kanban Board

A Board is an project management tool designed to help visualize work, limit work-in-progress. As the image shown below.


Below you will find some quick definitions to help you read through the document.


contains multiple groups and each group represents as an independent state


contains list of cards and each card represents as a record in database


contains list of properties and each property belongs to a specific FieldType

Grouping field

using the grouping rules provided by the Field to organize all rows

Grouping cell

the FieldType of the cell in row equal to the FieldType of the grouping field

Grouping data

each group has its grouping data that represents as the group id


A board using the database as its data storage.


The UML of the classes used in grouping shown in the following picture.


The groups are generated by the selected grouping field. Currently, AppFlowy supports these grouping fields. These groups are generated by its own rules shown below.



The number of groups equal to the number of options


The number of groups equal to the number of options


The number of groups equal to the number of different URLs in Cells


Only two groups

The first group of the board will be the No Status group. It contains the cards that the grouping cell doesn't contain the grouping data specified by the grouping field.


The number of rows in group will be changed by these conditions

  1. Move the card directly to another group.

  2. Edit the properties of the card

Actually, both of them can represent as create/delete/update of the card.



Create a card is equal to create a row with the grouping cell data in the database. For example, creating a card in a group whose grouping field type is SingleSelect. Then the data of the grouping cell will be that option specified by that group.


Delete a card is equal to delete the corresponding row in the database


  1. Moving a row from A group to B group will set the data of the grouping cell from A's grouping data to B's grouping data.

  2. Update the data of the grouping cell to one of these groups is equal to moving this row to that group

Last updated