A pomodoro-based productivity app (WIP)
  • TypeScript 99.8%
  • JavaScript 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-05-16 15:27:52 +07:00
.zed Add new Prettier plugin to organize imports 2026-04-14 20:36:48 +07:00
public Move away from monorepo structure. Integrate backend directly into 2026-03-01 21:48:25 +07:00
scripts Seed the default pomodoro settings for each mocked user 2026-04-26 21:53:21 +07:00
src Add settings page 2026-05-15 20:34:32 +07:00
.env.example Add note for local usage of NEXT_PUBLIC_DOMAIN 2026-03-06 10:12:47 +07:00
.gitignore Add Alert component 2026-03-09 22:23:29 +07:00
.npmrc Add @logger/simplelog 2026-03-03 16:44:41 +07:00
.prettierrc Add new Prettier plugin to organize imports 2026-04-14 20:36:48 +07:00
AGENTS.md Set up monorepo and format all files 2026-02-24 21:06:17 +07:00
bun.lock Update dependencies 2026-04-26 20:52:41 +07:00
bunfig.toml Complete mocked data for database. Rename setupTestEnv.ts into 2026-04-04 21:56:23 +07:00
drizzle.config.ts Temp fix server client boundary for Drizzle 2026-03-10 22:06:46 +07:00
eslint.config.mjs Add new Prettier plugin to organize imports 2026-04-14 20:36:48 +07:00
next.config.ts Enable cacheComponent 2026-03-10 22:07:00 +07:00
package.json Update dependencies 2026-04-26 20:52:41 +07:00
postcss.config.mjs Move away from monorepo structure. Integrate backend directly into 2026-03-01 21:48:25 +07:00
README.md Update README.md 2026-05-16 15:27:52 +07:00
tsconfig.json Move away from monorepo structure. Integrate backend directly into 2026-03-01 21:48:25 +07:00

Task Manager (WIP)

I had the idea for this project when working as a freelancer. Back then I simply used a simple time tracking app called Time Tracker, and then took the total hours and multiplied it with my rate per hour. So that's how I came up with this idea:

A pomodoro app that tracks your tasks with projects and clients, each project can have their own rate per hour. That'd help me calculate my income easily.

But over time I realized because of the way I structured the system design of the app, it caused many problems that my current technical skills cannot solve without making it looks like legacy code.

So I have to postpone this project for now and study more about the fundamentals and system design. Then maybe I will come back to it? My motivation for continuing this project has gone down significantly since I started to use Super Productivity.

The most important thing I learned from this project is planning. Now I get why back then my college SWE curriculum has so many subjects related to planning.

Thanks to this project, I have learned a lot about Elysia, Next.js, server actions, cache component, optimistic updates, etc. And the mental model of a non single page React app.

Tech stack

  • Frameworks: Next.js 16, ElysiaJS
  • ORM: Drizzle
  • UI Libraries: DaisyUI
  • State manager: Zustand

Features

The most notable ones:

Task addition Task selection persists across pages, and a context menu built from scratch
image image
Pomodoro Status toast
image image image
Clients page Projects page
image image

So, what's next?

I'm gonna move one to another one for now. This one is kind of boring honestly. The next one with focus on fun and play, a collaborative drawing board i guess.