All projects
ActiveFull-Stack App

Kanban Task Manager

A full-stack personal Kanban app built with Next.js, Neon PostgreSQL, Drizzle, NextAuth, and dnd-kit — designed as a polished single-user productivity system with secure account boundaries and fast keyboard-first workflows.

Case study snapshot

Problem

Most lightweight todo apps are too flat for real project work, while larger Kanban tools add team-oriented complexity that solo developers do not need. I wanted a focused personal task system with drag-and-drop planning, authentication, durable storage, labels, filters, and a workflow that feels fast enough for daily use.

What I did

Designed and implemented the product end to end: data model, route handlers, authentication, optimistic client state, drag-and-drop board behavior, keyboard workflows, dark/light theme system, and account privacy controls.

Stack

Next.jsTypeScriptReactTailwind CSSTanStack Querydnd-kitNextAuthDrizzle ORMNeon PostgreSQLZod

Challenges

  • Keeping drag-and-drop state reliable while supporting column reorder, cross-column task moves, optimistic updates, collapse state, and server persistence.
  • Maintaining strict per-user data isolation across every board, column, task, label, search, export, and account mutation route.
  • Adding productivity features like Focus Mode, task aging, Cmd+K search, and keyboard shortcuts without turning the app into a heavy team workspace.

Tradeoffs

  • Uses Route Handlers instead of Server Actions so validation, authorization, and API boundaries stay explicit and reviewable.
  • Uses Neon HTTP without database transactions, so reorder and batch-style writes rely on carefully scoped validation plus parallel updates.

Solo developers need a task system that is structured enough for real project work, but not overloaded with team management features.

Kanban Task Manager is my full-stack implementation of that idea: a private, keyboard-friendly board for planning, tracking, and reviewing personal engineering work.

What it is

A production-style Kanban app with authentication, persistent boards, draggable columns and tasks, labels, filters, WIP limits, and fast task entry. The goal is a daily-use workspace where:

  • Tasks can move quickly from capture to execution
  • Board state is saved in PostgreSQL instead of local storage
  • Every user only sees and mutates their own data
  • Common actions are available through keyboard shortcuts and Cmd+K search

Product shape

Board workflow. Users can create multiple boards, rename boards, add columns, set column colors, collapse columns, define soft WIP limits, and drag columns or tasks into the order they want.

Task workflow. Tasks support title, description, priority, due date, completion state, labels, quick-add creation, deep links, and edit dialogs. Filters cover search text, priority, due dates, labels, and completed tasks.

Focus workflow. Focus Mode turns the board into a single today-oriented list of overdue and due-today work. Task aging indicators make stale work visible without adding another dashboard.

Technical architecture

The app is built with Next.js App Router and TypeScript. Client state uses TanStack Query with optimistic mutations. Drag-and-drop uses a single dnd-kit context for the board.

Server behavior is handled through typed Route Handlers. Inputs are validated with Zod, persistence is handled with Drizzle ORM, and data lives in Neon PostgreSQL. Authentication uses NextAuth credentials with JWT sessions.

Security and data boundaries

Every user-owned resource is scoped through the authenticated session. Board, column, task, label, search, export, and account routes all verify ownership before returning or mutating data.

The app also includes privacy-oriented account controls: profile updates, password change, JSON data export, account deletion, privacy and terms pages, and DB-backed rate limiting for authentication-sensitive routes.

Current status

Active development. The core Kanban system, authentication, labels, search, Focus Mode, theme toggle, settings, and privacy controls are implemented.

What's next

  • CSV export for board data
  • Productivity stats dashboard
  • Browser due-date notifications
  • Subtasks or lightweight checklists inside tasks
  • Recurring task support for repeated personal workflows