A shared household dashboard built for two people on one clean page.
It combines collaborative tasks, recurring routines, notes, links, weather, and a combined agenda (events + due tasks).
The app is designed to answer one question quickly on desktop or mobile:
“What do we need to do next?”
Current capabilities:
- Shared task board with three assignee columns (
Shared,Alec,Wife) - Workflow groupings per person (
Today,This Week,Groceries,Recurring,Later) - Priority + due date + recurrence on tasks
- Recurring cadence support (
Daily,Weekly,Monthly) - Inline task editing + quick-move controls + drag/drop between sections
- Combined calendar agenda (events + task due dates)
- Scratchpad / whiteboard-style note
- Shared links/pastebin widget
- Dual-location weather widget
- Next.js 16 (App Router, Server Actions)
- React 19
- TypeScript
- Prisma 5
- SQLite (local file DB)
prisma/
schema.prisma
migrations/
src/
app/
actions/ # server actions (tasks, events, notes, links)
page.tsx # dashboard page composition
components/
TasksWidget.tsx
EventsWidget.tsx
WhiteboardWidget.tsx
PastebinWidget.tsx
WeatherWidget.tsx
lib/
prisma.ts
tasks.ts # task metadata + normalization helpers
npm installCreate .env at project root:
DATABASE_URL="file:./prisma/dev.db"npx prisma migrate devnpm run devOpen http://localhost:3000.
npm run dev— local development servernpm run lint— ESLint checksnpm run build— production build + type checknpm run start— run built app
Each task supports:
titleassignee:SHARED | ALEC | PAUpriority:LOW | MEDIUM | HIGHbucket:TODAY | THIS_WEEK | RECURRING | LATERrecurrence:NONE | DAILY | WEEKLY | MONTHLYdueDate(optional)isGrocery(separate workflow section)completed,lastCompletedAt,nextResetAt
- When a recurring task is completed, the app computes its next cycle and stores
nextResetAt. - Completed recurring tasks show reset indicators (for example, “Resets tomorrow”).
- When the reset time arrives, the task is reopened automatically on fetch.
- Use Shared for household-level work and personal columns for ownership.
- Use Groceries for short-lived shopping tasks regardless of recurrence.
- Use Recurring + due date for routines where cadence and timing both matter.
- Use quick arrows for fast bucket changes and drag/drop for larger reorganizing.
Before committing:
npm run lint
npm run buildEnsure .env exists and includes:
DATABASE_URL="file:./prisma/dev.db"Run:
npx prisma migrate devReinstall and regenerate:
npm install
npx prisma generate- Notifications / daily summary
- Auth + real profile avatars
- Calendar month/week views
- Task comments and activity history
- Optional sync/deployment beyond local SQLite