Skip to main content
RapidDev - Software Development Agency
bubble-tutorial

How to build a task manager in Bubble.io: Step-by-Step Guide

Build a fully functional task manager in Bubble with task creation, due dates, priority levels, status columns, user assignment, and drag-to-reorder. This tutorial shows you how to create a Kanban-style board where users can organize work visually using Bubble's native elements and workflows.

What you'll learn

  • How to design a Kanban-style task board with status columns
  • How to create task cards with priority, due date, and assignee
  • How to move tasks between columns using workflows
  • How to filter and sort tasks by priority or due date
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Beginner7 min read25-30 minAll Bubble plansMarch 2026RapidDev Engineering Team
TL;DR

Build a fully functional task manager in Bubble with task creation, due dates, priority levels, status columns, user assignment, and drag-to-reorder. This tutorial shows you how to create a Kanban-style board where users can organize work visually using Bubble's native elements and workflows.

Overview: Building a Task Manager in Bubble

Task management is one of the most common app categories built on Bubble. This tutorial walks you through creating a project-style task board with columns for To Do, In Progress, and Done. Each task card shows the title, assignee, due date, and priority. Users can move tasks between columns, filter by assignee, and sort by due date — all built visually without code.

Prerequisites

  • A Bubble account with an app ready to edit
  • Basic familiarity with Data Types and the Design tab
  • Understanding of Repeating Groups and workflows
  • At least one user account for testing task assignment

Step-by-step guide

1

Create the Task data type and Option Sets

Go to the Data tab and create a new Data Type called Task. Add fields: title (text), description (text), due_date (date), priority (Option Set), status (Option Set), assigned_to (User), and created_by (User). Then create two Option Sets: TaskPriority with options Low, Medium, High, and Urgent; and TaskStatus with options To Do, In Progress, and Done.

Expected result: A Task data type with all fields and two Option Sets for priority and status.

2

Design the Kanban board layout

In the Design tab, create a new page called tasks. Add a Row group at the top for filters and an Add Task button. Below it, add another Row group containing three Column groups side by side — one for each status. Label each column with a Text element showing the status name. Inside each column, add a Repeating Group with data source: Do a search for Tasks where status equals the column's status. Set each Repeating Group to show 10 items per page with vertical scrolling.

Pro tip: Set each column to a min-width of 300px and the parent Row to allow horizontal scrolling on mobile for a responsive Kanban layout.

Expected result: Three columns displaying tasks filtered by their status, forming a Kanban-style board.

3

Design the task card inside the Repeating Group

Inside each Repeating Group cell, add a Group with Column layout. Place a Text element showing Current cell's Task's title in bold. Below it, add a row with a small colored circle whose background is conditional on priority and text showing the priority Display value. Add another row with an icon and due_date formatted as MM/DD. Add the assignee name and a dropdown or buttons to change the task status.

Expected result: Each task displays as a card showing title, priority indicator, due date, and assignee.

4

Create the Add Task popup

Add a Popup element called Popup New Task. Inside it, place inputs for Title (text), Description (multiline), Due Date (date picker), Priority (dropdown with TaskPriority Option Set), and Assigned To (search box filtering Users). Add a Create Task button. Wire the main page's Add Task button to show this popup. On Create Task, create a workflow that creates a new Task with all field values, status set to To Do, and created_by set to Current User, then hides the popup.

Expected result: Clicking Add Task opens a popup form, and submitting it creates a new task card in the To Do column.

5

Add workflows to move tasks between columns

For each task card, add a dropdown to change the task's status. Create a workflow: When Dropdown Status value is changed, Make changes to Current cell's Task, setting status to the Dropdown's value. Because the Repeating Groups filter by status, the task will automatically disappear from the current column and appear in the new one. Alternatively, add arrow icon buttons that set status to the next or previous option.

Expected result: Changing a task's status moves it to the corresponding column in real time.

6

Add filtering and sorting controls

In the top Row group, add a Dropdown for filtering by assignee (data source: Do a search for Users) and another for filtering by priority (TaskPriority Option Set). Update each Repeating Group's search constraints to include assigned_to equals Dropdown Assignee's value and priority equals Dropdown Priority's value, both with Ignore empty constraints checked. Add a sort toggle button using a custom state to switch between due_date and created date sorting.

Expected result: Users can filter the board by assignee or priority and sort tasks within each column.

Complete working example

Workflow summary
1TASK MANAGER WORKFLOW SUMMARY
2================================
3
4DATA MODEL
5 Task:
6 - title (text)
7 - description (text)
8 - due_date (date)
9 - priority (Option Set: TaskPriority)
10 - status (Option Set: TaskStatus)
11 - assigned_to (User)
12 - created_by (User)
13
14 Option Set: TaskPriority
15 Options: Low, Medium, High, Urgent
16
17 Option Set: TaskStatus
18 Options: To Do, In Progress, Done
19
20PAGE: tasks
21 LAYOUT
22 Row: Filters + Add Task button
23 Dropdown: Assignee filter (Users)
24 Dropdown: Priority filter (TaskPriority)
25 Button: Add Task Show Popup New Task
26 Row: Kanban Columns
27 Column 1: To Do
28 RG: Tasks where status = To Do
29 Column 2: In Progress
30 RG: Tasks where status = In Progress
31 Column 3: Done
32 RG: Tasks where status = Done
33
34 WORKFLOW: Create Task
35 Trigger: Button Create Task in popup clicked
36 Step 1: Create a new Task
37 - title, description, due_date, priority from inputs
38 - status: To Do
39 - assigned_to: SearchBox User value
40 - created_by: Current User
41 Step 2: Hide Popup New Task
42 Step 3: Reset relevant inputs
43
44 WORKFLOW: Move Task
45 Trigger: Dropdown Status value changed
46 Step 1: Make changes to Current cell's Task
47 - status: Dropdown Status value

Common mistakes when building a task manager in Bubble.io: Step-by-Step Guide

Why it's a problem: Not using Option Sets for priority and status

How to avoid: Always use Option Sets for fixed categories like status and priority. They are type-safe and cached on the client.

Why it's a problem: Nesting searches inside Repeating Group cells

How to avoid: Pre-compute counts or related data as fields on the Task data type rather than searching inside cells.

Why it's a problem: Forgetting to check Ignore empty constraints on filters

How to avoid: Enable Ignore empty constraints on every filter-based search constraint.

Best practices

  • Use Option Sets for task status and priority to ensure data consistency
  • Enable Ignore empty constraints on all filter search parameters
  • Set Repeating Group page size to 10-20 items to prevent slow loading
  • Add Privacy Rules so users can only see tasks assigned to them or created by them
  • Use conditional formatting to color-code priority levels (green, yellow, orange, red)
  • Store the created_by field automatically using Current User for audit purposes
  • Test the board with 50+ tasks to verify performance before going live

Still stuck?

Copy one of these prompts to get a personalized, step-by-step explanation.

ChatGPT Prompt

I want to build a Kanban-style task manager in Bubble.io with three columns (To Do, In Progress, Done), task cards showing title, priority, due date, and assignee, plus filtering and sorting. What data model and workflows do I need?

Bubble Prompt

Create a task management page with a Kanban board layout. Add three columns for To Do, In Progress, and Done. Each column has a Repeating Group showing Task cards. Include an Add Task popup with fields for title, description, due date, priority, and assignee.

Frequently asked questions

Can I add drag-and-drop to move tasks between columns?

Bubble does not support native drag-and-drop between Repeating Groups. Use a dropdown or arrow buttons to change task status. For true drag-and-drop, consider a plugin like Draggable Elements.

How do I add subtasks to each task?

Create a Subtask data type with a parent_task field linking to Task. Display subtasks in a nested Repeating Group inside each task card or in a task detail popup.

Can I send notifications when a task is assigned?

Yes. In the Create Task workflow, add a Send email action after creating the task. Set the recipient to the assigned_to user's email with the task title and due date.

How do I limit who can see which tasks?

Add Privacy Rules to the Task data type. Create a rule where Current User is this Task's assigned_to or created_by, and grant Find in Searches and View all fields permissions.

Will the board slow down with hundreds of tasks?

Yes, if all tasks load at once. Paginate Repeating Groups to 10-20 items, use search constraints not client-side filters, and archive completed tasks periodically.

Can RapidDev help me build a more advanced project management tool?

Yes. RapidDev can help you build features like Gantt charts, time tracking, sprint planning, team dashboards, and integrations with tools like Slack and GitHub.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.