Constellation Planner

A playful task-and-goal planner where each task becomes a “star” you place on a nightly sky canvas, forming constellations that represent projects or habits. Users can create constellations, drag stars to connect them with lines, set due dates and priority, and mark stars complete to make them glow or fade. Everything runs client-side with localStorage persistence, plus a simple “stargazing” view that filters by today/this week and shows progress as the constellation fills in.

To Do30
Scaffold app

Run: npm create vite@latest . -- --template react-ts && npm i -D tailwindcss postcss autoprefixer && npx tailwindcss init -p && npm i class-variance-authority clsx tailwind-merge lucide-react && npx shadcn@latest init

by system

Add Tailwind globals

Configure src/index.css with Tailwind directives and basic body/background styles.

by system

Set up app layout

Create src/App.tsx with a shell layout (header + main) and placeholder routes area.

by system

Add router setup

Install and wire react-router in src/main.tsx with routes for Sky and Stargazing.

by system

Create navigation header

Implement src/components/HeaderNav.tsx with shadcn/ui buttons/links for navigation.

by system

Define domain types

Add src/types/constellation.ts defining Star, Constellation, and AppState interfaces.

by system

LocalStorage helpers

Create src/lib/storage.ts with loadState/saveState and versioned key handling.

by system

State store hook

Implement src/state/useAppState.ts to manage AppState with persistence to localStorage.

by system

ID and date utils

Add src/lib/utils.ts for id generation and due-date comparisons (today/this week).

by system

Seed initial data

Create src/state/seed.ts providing a small demo constellation when storage is empty.

by system

Sky page scaffold

Create src/pages/SkyPage.tsx rendering sidebar + sky canvas region using app state.

by system

Stargazing page scaffold

Create src/pages/StargazingPage.tsx with filter controls and a results list placeholder.

by system

Constellation sidebar list

Build src/components/ConstellationList.tsx to list/select/create constellations.

by system

Rename constellation dialog

Add src/components/ConstellationRenameDialog.tsx to edit constellation name/color.

by system

Delete constellation action

Implement src/components/ConstellationDeleteButton.tsx with confirm dialog and removal.

by system

Sky canvas wrapper

Create src/components/SkyCanvas.tsx providing a positioned container for stars and lines.

by system

Star component

Implement src/components/StarNode.tsx to render a star with glow/fade by completion.

by system

Drag star positioning

Add pointer-drag logic in src/components/useDragPosition.ts for updating star x/y.

by system

Connect stars mode

Implement src/components/ConnectModeToggle.tsx to enable/disable line-connecting behavior.

by system

Star connection lines

Create src/components/StarConnections.tsx drawing SVG lines between connected stars.

by system

Add star interaction

Implement click-to-add-star in src/components/AddStarButton.tsx for current constellation.

by system

Star edit panel

Create src/components/StarDetailsPanel.tsx to edit title, notes, due date, priority.

by system

Priority badge styles

Add src/components/PriorityBadge.tsx mapping priority levels to Tailwind/shadcn variants.

by system

Complete star toggle

Implement src/components/StarCompleteToggle.tsx to mark complete and update visuals.

by system

Delete star action

Create src/components/DeleteStarButton.tsx with confirm and cleanup of connections.

by system

Keyboard shortcuts

Add src/components/useKeyboardShortcuts.ts for delete selected and escape to deselect.

by system

Stargazing filters

Implement src/components/StargazingFilters.tsx for today/this week/all and constellation select.

by system

Stargazing list

Create src/components/StargazingStarList.tsx to render filtered stars with quick actions.

by system

Progress meter

Implement src/components/ConstellationProgress.tsx showing completed/total and percentage.

by system

Empty states polish

Add friendly empty/loading UI in SkyPage and StargazingPage when no constellations/stars exist.

by system

In Progress0
In Review0
Done0