Tasks & Project Management
NoteCove includes a powerful task management system with Kanban boards, custom workflows, and project organization.
Tasks as First-Class Entities
Unlike many note-taking apps where tasks are just checkboxes in notes, NoteCove treats tasks as independent entities with their own storage, metadata, and capabilities.
Key Differences from Notes
| Feature | Notes | Tasks |
|---|---|---|
| Storage | {SD}/notes/ directory | {SD}/tasks/ directory (separate) |
| Sync | Independent sync streams | Independent sync streams |
| Metadata | Title, folder, pinned | Title, folder, pinned, state, priority, type |
| Organization | Folders only | Folders, projects, states, types |
| Views | List, search | Kanban boards, filters, list, search |
| Relationships | Links to other notes | Parent tasks, blockers, discovered |
Why Separate?
Storing tasks separately from notes provides:
- Better Performance: Sync only what changed (notes vs. tasks)
- Specialized Features: Task-specific metadata (state, priority) without bloating note schema
- Scalability: Handle thousands of tasks without impacting note performance
- Future Flexibility: Easy to add new entity types (whiteboards, calendars, etc.)
Creating Tasks
Quick Task Creation
- From Menu: File > New Task (or
Cmd/Ctrl+Shift+T) - Enter title and press Enter
- Task created in the default project
Task Properties
Each task has rich metadata:
Basic Properties:
- Title: Brief description of the task
- Description: Rich text content (same editor as notes)
- Folder: Organize tasks in folders (optional)
Project Management:
- Project: Which project this task belongs to
- State: Current status (e.g., Backlog, In Progress, Done)
- Priority: P0 (Critical) to P4 (Low)
- Type: Task category (e.g., Bug, Feature, Chore)
Relationships:
- Parent Task: Subtask relationships
- Blockers: Tasks blocking this one
- Discovered From: Source task that led to creating this one
Projects and Workflows
Creating and Managing Projects
Projects are managed directly from the Projects section in the left sidebar:
- Create: Click the
+button in the Projects section header - Edit: Click the three-dot menu (⋮) on any project and select “Edit” to configure its name, description, workflow states, and task types
- Delete: Click the three-dot menu and select “Delete” to archive a project (reversible)
- Show Deleted: Click the
...overflow menu on the Projects heading to toggle visibility of archived projects - Restore/Purge: Archived projects show “Restore” and “Purge Forever” options in their three-dot menu
Custom Projects
Create projects with:
- Unique Slug Prefix: Short identifier for tasks (e.g.,
PROJ) - Custom States: Define your workflow (e.g., Backlog → In Progress → Review → Done)
- Custom Types: Categorize tasks (e.g., Bug, Feature, Research, Chore)
- Multiple Boards: Different Kanban views for different purposes
State Configuration
Each state can have:
- Name: Display name (e.g., “In Progress”)
- Color: Visual indicator
- Terminal Flag: Is this a final state?
- Order: Position in workflow
Type Configuration
Task types enable filtering and organization:
- Name: Type name (e.g., “Bug”)
- Color: Visual indicator
- Order: Sort order in type list
Project Archiving & Purging
Projects can be archived (soft-deleted) when no longer active, and purged when you want to permanently remove them.
Archive (reversible):
- Removes project from the active project list
- Tasks remain accessible if you enable “Show Deleted” from the Projects section overflow menu
- Project can be restored at any time
- On desktop, archiving a project automatically closes its window if open
Purge (irreversible):
- Only available on archived projects
- Permanently deletes all tasks in the project (records tombstones for cross-instance sync)
- Marks the project as purged in the CRDT (syncs to all instances)
- Hard-deletes the project from the local database, freeing the slug prefix for reuse
- Other instances detect the purge via CRDT sync and clean up their local data automatically
- A confirmation dialog shows the number of tasks that will be permanently deleted
Platforms: Desktop and iOS both support archive and purge.
Project Windows
Dedicated Windows for Projects
Each project can open in its own dedicated window, giving you a focused view of that project’s tasks. This allows you to:
- Work on multiple projects simultaneously: Open several project windows side-by-side
- Separate concerns: Keep project work separate from note-taking in the main window
- Maintain context: Each window remembers its view mode, size, and position
Opening Project Windows
From the Projects Panel:
- Click on any project in the left sidebar
- A new window opens showing that project’s tasks
- Clicking the same project again focuses the existing window
Window Behavior:
- One window per project maximum (clicking opens or focuses)
- Windows remember their size and position across app restarts
- Window title shows project name: “Project Name - NoteCove”
View Modes
Project windows support two view modes that you can toggle between:
Kanban View
Board-style visualization with columns for each state:
- Drag & Drop: Move tasks between states by dragging cards
- Visual Grouping: See workflow stages at a glance
- Board Positions: Task order within columns is preserved
- State Columns: One column per project state
List View
Linear list of all tasks with enhanced details:
- Two Sections: Active tasks (top) and Completed tasks (bottom)
- Rich Task Cards: Show description preview, relationships, metadata
- Manual Ordering: Drag to reorder within each section
- Description Preview: First 2 lines of task description shown
- Metadata Display: State, priority, type, assignee, due date
- Relationship Indicators: Parent task, blockers, child count badges
- Comment Count: Number of comments on each task
Toggle Between Views:
- Click the view toggle button in the project window header
- View mode preference is saved per-project
- Persists across app restarts
Window Management
Window Cleanup:
- Deleting a project automatically closes its window
- Removing a Storage Directory closes all project windows for that SD
- Deleting a selected task in a project window deselects it
Task Detail Panel
Project windows use a split-pane layout:
- Left Pane: Kanban board or List view
- Right Pane: Task detail panel (when a task is selected)
Click any task to view and edit its details in the right pane:
- Full task editor with rich text description
- All task metadata (state, priority, type, etc.)
- Comments, relationships, and attachments
- Close the detail panel to return to full-width board/list
Task Search
Filter tasks within a project using the search box in the project window header:
Search Features:
- Full-text search: Matches task titles and descriptions
- Slug search: Type task slugs (e.g., “PROJ-123”) to find specific tasks
- Instant filtering: Results update as you type (with 2+ characters)
- Clear search: Click the X button or press Escape to show all tasks again
- Persists across views: Search query remains when toggling between Kanban and List views
Search Behavior:
- Search is scoped to the current project
- Works in both Kanban and List view modes
- Selected task is automatically deselected if filtered out by search
- Shows “No matching tasks” when search returns no results
Kanban Boards
Kanban boards are displayed in project windows, providing a visual workflow view.
Board Types
Each project can have multiple custom boards with different filters and configurations.
Custom Boards
Create multiple boards per project with different filters:
- State Filters: Show only specific states
- Type Filters: Show only specific types
- Multiple Views: Different boards for different purposes (e.g., “Current Sprint”, “Backlog Review”)
Board Features
- Drag & Drop: Move tasks between state columns
- Visual Indicators: Priority badges, task types, blocker warnings
- Task Selection: Click task to view details in right pane
- Persistent Positions: Task order within columns saved per board
- Live Updates: Boards sync in real-time across instances
- Board Switching: Dropdown in project window header to switch between boards
Task Relationships
Parent-Child Tasks
Break down large tasks:
- Create a parent task: “Implement user authentication”
- Create child tasks: “Design login UI”, “Add password hashing”, “Write tests”
- Parent shows child count
- Navigate between parent and children
Blockers
Track dependencies:
- Add Blocker: Task A blocks Task B
- Visual Indicators: Tasks with blockers show warning badge
- Ready View: Shows tasks with no unblocked dependencies
- Auto-Update: Completing blocker updates blocked task
Discovered From
Track task origins:
- Working on Task A: Discover need for Task B
- Mark Task B as “Discovered From Task A”
- Trace Origins: Understand why tasks were created
- Context Preservation: Link back to source discussions
Task Slugs
Each task gets a unique slug in the format {PROJECT_PREFIX}-{NUMBER}:
Examples:
NOTECOVE-123: Task 123 in the NoteCove projectBLOG-5: Task 5 in the Blog project
Slug Features:
- Unique per project: Numbers auto-increment
- Quick search: Type slug to find task instantly
- Copy slug: Share task references easily
- Link from notes: Reference tasks in note content (see Task Links in Notes)
Task Links in Notes
Reference tasks directly from your notes using the task link syntax. This creates clickable chips that show task information and stay up-to-date.
Syntax
Use double brackets with the T: prefix followed by a task slug:
[[T:PROJECT-abc]]
Examples:
[[T:NOTECOVE-123]]- Links to task 123 in the NoteCove project[[T:BLOG-a5f]]- Links to task with partial ID “a5f” in the Blog project
Display
Task links render as inline chips showing:
- Slug: Short task identifier (e.g.,
PROJ-abc) - State: Current status with color (e.g.,
In Progress) - Title: Task title
Autocomplete
Type [[T: to trigger autocomplete:
- Type
[[T:in the editor - Continue typing to search tasks by title or slug
- Use arrow keys to navigate suggestions
- Press Enter to insert the selected task link
- Press Escape to cancel
Preview Popup
Click any task link chip to see a preview popup with:
- Full task title and slug
- Current state, priority, and type
- Content preview
- Subtask count and blocker warnings
- “Open Task” button to navigate to the task
Live Updates
Task link chips update automatically when:
- Task state changes (e.g., moved to “Done”)
- Task title is edited
- Task is deleted (shows “deleted” indicator)
Keyboard Accessibility
- Tab: Focus task link chips
- Enter/Space: Open preview popup on focused chip
- Escape: Close preview popup
Move Task Between Projects
Reassign a task to a different project when priorities shift or you realize it belongs elsewhere.
How to Move
- Desktop: Right-click a task and select “Move to Project…”, or use the move button in the task detail header
- iOS: Long-press a task card and select “Move to Project…”
What Happens When You Move
- State mapping: NoteCove maps the task’s current state to the destination project’s workflow by name. If no matching state name exists, you’ll be prompted to choose one.
- Type mapping: Same name-based mapping for task types, with a prompt if no match.
- Subtasks stay: Child tasks move with the parent automatically.
- Slug changes: The task gets a new slug in the destination project (e.g.,
OLD-abcbecomesNEW-def). - Links update: Existing task links continue to work since they reference the task by ID, not slug.
Pinning Tasks
Pin important tasks to keep them at the top of any list. Pinning works across all task views: folder sidebar, project list, and Kanban boards.
How to Pin
- Context Menu: Right-click a task and select “Pin” (or “Unpin” to remove)
- Task Detail Panel: Click the pin icon in the task detail header
Pinned Task Behavior
- Folder sidebar: Pinned tasks float to the top of the task list
- Project list view: Pinned tasks appear first in both active and completed sections
- Kanban boards: Pinned tasks float to the top within each column
- Cross-instance sync: Pin state syncs across all devices via CRDT
Task Multiselect (Desktop)
Select multiple tasks at once to perform batch operations.
Selection Methods
- Cmd/Ctrl+Click: Toggle individual tasks into/out of the selection
- Shift+Click: Select a range of tasks (from the last clicked to the current)
- Click without modifiers: Deselects all and opens the clicked task
Selection Indicators
- Selected tasks are highlighted with a blue tint
- A badge at the top of the task list shows “N tasks selected” with a “Clear Selection” button
Batch Operations
Right-click on any selected task to see batch options:
- Delete N tasks: Permanently delete all selected tasks (with confirmation dialog)
- Move N tasks to…: Move all selected tasks to a different folder
Multi-Drag
Drag any selected task to a folder in the sidebar to move all selected tasks at once. The drag preview shows “N tasks” to indicate a batch operation.
Desktop-Specific Features
Project Windows
The dedicated project window feature is desktop-only, providing:
- Multiple windows open simultaneously
- Native window management (minimize, maximize, full-screen)
- Keyboard shortcuts for cycling between project windows
- Persistent window positions across restarts
See the Project Windows section above for full details.
iOS Support
iOS includes full task management support:
- Task List View: Browse tasks per project with state filtering
- Kanban Board View: Visual board with columns per workflow state, drag-and-drop between columns
- Task Detail View: View and edit task properties (title, state, type, priority, color) with full rich-text editor
- Rich Text Editor: Full TipTap editor for task descriptions — same formatting capabilities as notes (headings, lists, code blocks, tables, etc.)
- Photo Attachments: Add photos to tasks directly from the camera roll, stored as co-located attachments
- Comments & Discussion: Full comment thread support — add comments, reply, resolve, and delete threads on tasks
- Task Creation: Create tasks within projects from the task list
- Task Links in Notes: Type
[[T:in notes to autocomplete task references — renders as clickable chips showing slug, state, and title. Tap a task link to open the task detail view. - Move Tasks: Move tasks between projects with state/type mapping
- Board Configuration: Edit board settings, add/remove columns, custom filter-based columns
- Context Menu: Long-press task cards to move between states
- Live Updates: GRDB observation ensures the board updates in real-time as changes sync. Task link chips update automatically when task state or title changes.
- Cross-Platform Sync: Changes made on iOS replicate to desktop and vice versa via the activity log
Performance
NoteCove’s task system is built for scale:
- 10,000+ tasks: Handles large task databases
- Fast search: Full-text search across all task content
- Quick filters: Instant filtering by state, type, priority
- Efficient sync: Only sync tasks that changed
- Low memory: Tasks loaded on-demand, not all in memory
Best Practices
Project Organization
- One project per major effort: Don’t create too many projects
- Clear state names: Use workflow-specific terms your team understands
- Consistent types: Standardize task categorization across projects
Task Hierarchy
- Limit depth: 2-3 levels max (parent → child → grandchild)
- Right-size tasks: Tasks should be completable in days, not months
- Use types over hierarchy: Prefer flat structures with good type classification
Workflow Design
- Keep it simple: 3-5 states is usually enough
- Terminal states: Mark completion states as terminal
- Consistent colors: Use color coding systematically
Related Features
- Import & Export - Export tasks with markdown export
- Folders & Organization - Organize tasks in folders
- Search - Full-text search across tasks
- Offline Sync - Task sync mechanism
Technical Details
- Offline Sync - How sync and storage works