Skip to content

Commit 4cd763e

Browse files
bricefclaude
andcommitted
Improve dashboard empty state for fresh installs
Show a welcoming message with the CLI command to create a first board when no boards exist. Hide stats cards when there's no data to show. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 1f980e4 commit 4cd763e

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

internal/http/dashboard/index.html

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ <h1>TaskFlow Dashboard</h1>
279279
let html = '';
280280

281281
// Stats cards (admin only).
282-
if (stats) {
282+
if (stats && (stats.boards.total > 0 || stats.actors.total > 0)) {
283283
html += '<div class="grid">';
284284
html += statCard('Boards', stats.boards.active, stats.boards.total + ' total');
285285
html += statCard('Tasks', stats.tasks.total,
@@ -311,7 +311,12 @@ <h1>TaskFlow Dashboard</h1>
311311
// Board overview.
312312
html += '<div class="section"><h2>Boards</h2>';
313313
if (boardData.length === 0) {
314-
html += '<p style="color: var(--text-dim)">No boards found.</p>';
314+
html += '<div class="card" style="text-align: center; padding: 2rem;">';
315+
html += '<p style="font-size: 1.1rem; margin-bottom: 0.75rem;">No boards yet</p>';
316+
html += '<p style="color: var(--text-dim); margin-bottom: 1rem;">Create your first board to get started:</p>';
317+
html += '<code style="display: block; background: var(--bg); padding: 0.75rem; border-radius: var(--radius); color: var(--accent); font-size: 0.9rem;">';
318+
html += 'taskflow board create --slug my-board --name "My Board"</code>';
319+
html += '</div>';
315320
}
316321
for (const { board, tasks } of boardData) {
317322
const stateCounts = {};

0 commit comments

Comments
 (0)