Features
Boards

Boards

Boards are the central workspace where you manage tasks, track progress, and collaborate with your team.

Board Structure

Board
├── Groups (visual sections)
│   ├── Group: "To Do"
│   ├── Group: "In Progress"
│   └── Group: "Done"
├── Columns (data fields)
│   ├── Name, Status, Person, Date, Priority...
└── Tasks (work items)
    ├── Task 1
    ├── Task 2
    └── Task 3

Creating a Board

From Template

  1. Click "Add Board" in the sidebar
  2. Select a template:
    • Project Management - Basic project tracking
    • Sprint Planning - Agile sprints
    • Bug Tracker - Issue tracking
    • Content Calendar - Content planning
    • CRM - Customer relationship management
  3. Name your board and create

From Scratch

  1. Click "Add Board""Start from scratch"
  2. Enter board name and description
  3. Configure initial columns

From Spreadsheet

Import existing data from Excel or CSV:

  1. Click "Add Board""Import"
  2. Upload your spreadsheet file
  3. Map columns to Sunday column types
  4. Review and import

Board Views

Switch between views using the view switcher in the board header.

Table View

Spreadsheet-like interface with:

  • Inline editing
  • Column resizing
  • Column reordering
  • Sorting
  • Filtering

Kanban View

Drag-and-drop cards organized by status:

  • Cards move between columns
  • Visual progress tracking
  • Quick status updates

Timeline View

Gantt-style chart for project planning:

  • Drag to adjust dates
  • Visualize task duration
  • See dependencies

Calendar View

Date-based view showing:

  • Tasks on their due dates
  • Month/week navigation
  • Quick task creation on dates

Dashboard View

Charts and analytics:

  • Status distribution pie chart
  • Priority breakdown
  • Team workload bar chart
  • Progress over time

Workload View

Team capacity planning:

  • Tasks per person
  • Time allocation
  • Identify bottlenecks

Board Settings

Access settings via the gear icon in the board header.

General Settings

  • Name - Board display name
  • Description - Board purpose
  • Theme - Light or dark mode
  • View Density - Compact, comfortable, or spacious

Background

Customize the board appearance:

  • Solid colors
  • Gradients
  • None (default)

Members

Manage team access:

RolePermissions
AdminFull access, manage members, delete board
EditorAdd/edit tasks, manage groups/columns
ViewerRead-only access

Inviting Members

  1. Click "Invite" in the board header
  2. Search for users by email
  3. Select their role
  4. Send invitation
POST /api/boards/[id]/invite
Content-Type: application/json
 
{
  "userId": "user-id-here",
  "role": "editor"
}

Groups

Groups visually organize tasks within a board.

Create Group

POST /api/boards/[id]/groups
Content-Type: application/json
 
{
  "name": "New Group",
  "color": "#3B82F6"
}

Group Actions

  • Collapse/Expand - Hide group contents
  • Rename - Double-click the name
  • Recolor - Click the color indicator
  • Delete - Removes group (tasks move to default group)

API Reference

Create Board

POST /api/boards
Content-Type: application/json
 
{
  "name": "Project Alpha",
  "workspaceId": "workspace-id",
  "description": "Main project board"
}

Update Board

PATCH /api/boards/[id]
Content-Type: application/json
 
{
  "name": "Updated Name",
  "description": "New description",
  "background": {
    "type": "gradient",
    "value": "linear-gradient(135deg, #667eea 0%, #764ba2 100%)"
  }
}

Delete Board

DELETE /api/boards/[id]

Store Usage

import { useAppStore } from '@/lib/store'
 
// Get current board
const selectedBoardId = useAppStore((s) => s.selectedBoardId)
const currentBoard = useAppStore((s) => 
  s.boards.find(b => b.id === s.selectedBoardId)
)
 
// Board actions
const addBoard = useAppStore((s) => s.addBoard)
const updateBoard = useAppStore((s) => s.updateBoard)
const deleteBoard = useAppStore((s) => s.deleteBoard)
const selectBoard = useAppStore((s) => s.selectBoard)
 
// Select a board
selectBoard('board-id')
 
// Change view
const setCurrentView = useAppStore((s) => s.setCurrentView)
setCurrentView('kanban')