A full-stack project-management tool that replaces spreadsheet, Notion, and Trello sprawl with one workspace teams actually open every day. I engineered it end to end: a Next.js front end and a Node and Postgres back end, on a Figma design by Hamail Hassan.

Tasktrox started as a tool for a friend's company, a small team drowning in spreadsheets, Notion docs, and a Trello board nobody trusted. They needed one place to see who was doing what, by when.
The brief was narrow and honest: a project-management tool simple enough that a team would actually open it every day. No feature bloat, no dashboard spaghetti, no AI-as-mascot. Just the handful of things a team needs to coordinate work, built well.
Hamail Hassan handled the design in Figma. I built everything else. Front end, API, database, caching, and the containers it all runs in. One engineer owning the full stack end to end.
When the original company moved on, we shipped Tasktrox live as a public product instead of shelving it. It quietly found real users beyond the team it was built for, and paid plans come next.
Three rules shaped the build. One: fewer screens, done well. A small team doesn't need fifty features. It needs the five it touches daily to be fast and obvious. Scope was a feature, not a limitation.
Two: keep the data honest. If a task is blocked, the board says blocked, with no silently recoloured badges. State lives in Postgres and changes through real transitions, never optimistic guesses. Three: it has to feel instant. Redis caches the hot paths, the API stays lean, and motion is 240ms, quick enough to stay out of the way.
The dashboard is where the team lives: every project at a glance, status and owner up front, detail one click away. The right rail is for context, never controls.
Under it sit the boring contracts that hold it together: a Prisma schema modelling projects, tasks and members; REST endpoints with real auth; Redis caching the views that get hit most. Cards align to an 8-pt grid, and motion is 240ms expo.out, fast enough to feel earned, quick enough to stay out of the way.

Behind the screens, Tasktrox is a Kanban project tool I built and run end to end: a typed React client, a versioned REST API, and a Postgres core with Redis in front, all containerised and shipped with zero-downtime deploys.
Server-rendered React, typed end to end, talking to the API over a versioned REST contract.
Auth on every route: Google and Apple OAuth plus email login, JWT access tokens with refresh-token rotation, and four access roles from owner to viewer.
A 12-model Prisma schema: projects, columns, tasks, assignees, labels, comments and attachments, with soft deletes and a full activity log. Redis caches the read-heavy board views.
Every service in its own container, built in CI and pushed to GHCR. Self-hosted behind Nginx on isolated networks, released blue/green for zero downtime.
Mohed Abbas is a full-stack web engineer. He builds web products end to end: interfaces in React and Next, APIs and services in Node, and the Postgres, Redis and Docker plumbing that keeps them running.
Tasktrox started as a tool for a friend's company and outlived the company itself. It's now live as a public product, picking up real users beyond the team it was built for. Currently open to full-time roles and freelance builds.