Jira Clone — Task Management Platform
A self-directed build to push my full-stack Next.js work past tutorial depth — workspaces, projects, and three views over the same tasks, on an architecture designed to scale and stay maintainable.
Overview
I built this one for myself. I wanted to push my full-stack Next.js work past tutorial depth, so I picked something with real complexity: workspaces, projects, members, and three different ways of viewing the same set of tasks. Most of the work went into the architecture rather than the features. I designed it to be scalable, maintainable and performant from the start — the codebase is organised by feature rather than by file type, the API layer is type-safe end to end, and view state lives in the URL instead of in component memory. It taught me to settle the structure before writing the features.
Highlights
- Feature-sliced architecture — tasks, projects, workspaces, and members each own their components, hooks, API, and server code
- Three views, one data set — a kanban board with drag-and-drop, a calendar, and a sortable table
- Type-safe end to end — Hono and Zod on the API, TanStack Query on the client, one contract between them
- URL-driven state — filters and view state live in the URL, so any board is shareable and survives a refresh
- Workspaces & roles — invite teammates, assign work, and track it per project
- Per-project analytics — task volume, completion, and overdue work at a glance
Stack
- Next.js + TypeScript
- Tailwind CSS + shadcn/ui
- Appwrite for auth, database, and storage
- Hono + Zod for a type-safe API layer
- TanStack Query and TanStack Table for data and grids
- @hello-pangea/dnd for drag-and-drop, react-big-calendar for the calendar view
- nuqs for URL-synced filter state
Recent Projects
A recently completed project showcasing problem-solving, design thinking, and execution.

