All Projects
WEB APPApril 2023

Taskmaster

A keyboard-first task manager for people who think in lists, not Gantt charts.

Taskmaster screenshot

Overview

Taskmaster was my first serious attempt at building a complete product from scratch — not just a frontend exercise, but a real full-stack application with user authentication, a REST API, persistent storage, and enough polish to actually use daily. The motivation was simple: I wanted a task manager that was fast, keyboard-friendly, and didn't overwhelm me with features I'd never use. Most productivity tools at the time were either too minimal (plain text files) or too complex (Jira-like project management suites). Taskmaster sits in the middle — Kanban boards with drag-and-drop, due dates, priority levels, and just enough structure to keep things organised without becoming a chore to maintain. Building it taught me how every layer of a web application connects: React rendering on the client, Express handling API routes, MongoDB persisting data, and JWT tokens tying it all together securely.

Boards & Drag-and-Drop

Tasks are organised into Kanban-style boards with customisable columns (typically To Do, In Progress, Done, but users can rename and add their own). Cards can be dragged between columns and reordered within a column, with the position persisted immediately to the database. The drag interactions use optimistic updates — the UI moves the card instantly and syncs with the server in the background, so the interface never feels sluggish even on slower connections. Each card supports a title, description, due date, priority level (colour-coded), and labels for categorisation. Clicking a card opens a detail modal where you can edit all fields, add notes, and see creation/modification timestamps.

Auth & Persistence

The backend is a Node.js/Express REST API connected to MongoDB Atlas. User authentication uses bcrypt for password hashing and JWT tokens for stateless session management — the access token lives in memory and a refresh token in an httpOnly cookie for security. Each user's boards and tasks are isolated by their account, so data stays private. The API follows RESTful conventions with proper error handling, input validation, and rate limiting on auth endpoints to prevent brute-force attacks. MongoDB's flexible document model made it easy to nest tasks within boards without complex join queries.

An Honest First Build

This is an early project and it shows its age in places — the component structure is flatter than I'd write today, some state management could be cleaner, and the styling is functional rather than refined. But that's exactly why it's still in my portfolio: it represents the foundation everything else was built on. It was the first time I wired together a frontend, an API, a database, and authentication into something that actually worked end to end. The lessons from building it — about separation of concerns, about API design, about the importance of error handling — directly informed every professional project that followed.

What I Learned

  • 01

    Wiring a frontend, API, and database together for the first time completely demystifies the full stack. Once you've built the auth flow, the CRUD operations, and the data persistence yourself, every framework and abstraction you encounter later makes intuitive sense because you understand what it's doing underneath.

  • 02

    Optimistic UI updates transform the perceived performance of even a simple app. Moving a card and waiting 200ms for a server response feels broken; moving it instantly and syncing in the background feels native. This principle has guided every interactive feature I've built since.

  • 03

    Your earliest projects are the ones that teach you what good architecture is — by lacking it. Looking back at Taskmaster's code, I can see exactly where I'd introduce better patterns today, and that clarity only exists because I built it the naive way first.

Next Project
Arcane Chess
Available for projectsReady to make something fun 🎈

Ready to build the next system?Wanna build something awesome together?

Currently accepting high-impact opportunities in frontend engineering and scalable web applications.Got a cool idea rattling around? Let's grab a virtual coffee and turn it into something people love. ☕