getAll(); $requestedProject = isset($_GET['project']) ? trim((string) $_GET['project']) : ''; $activeProjectId = $requestedProject; $boardService = new BoardService(); $initialState = null; $loadError = null; $showDashboard = $requestedProject === ''; if ($activeProjectId !== '') { try { $initialState = $boardService->getBoardState($activeProjectId); $showDashboard = false; } catch (Throwable $exception) { $showDashboard = true; $loadError = 'The requested project could not be loaded. Pick another project or create a new one.'; } } ?> <?php echo e((string) config('app_name')); ?>

Project Dashboard

Choose a project or start a fresh one

Each project stays as markdown on disk, with its own notes, tasks, board definition, and revision tracking.

project Stored in

Project unavailable

Create Project

Leave the slug blank to generate it automatically.

Projects

No projects yet

Create your first project to generate a board with default kanban columns.

body) ?? ''); $preview = $preview !== '' ? $preview : 'No project description yet.'; $preview = strlen($preview) > 180 ? substr($preview, 0, 177) . '...' : $preview; ?>

Project

title); ?>

Project Board

All Projects

Discarded Tasks

Trash

Drop tasks here to discard them

Trash is empty.

Task

Note