Back to projects

Case Study

Own product

Methodeck

A live personal productivity web service that keeps one shared task pool, reinterprets it through six execution methodologies, and turns verified activity into rewards.

A product we planned, launched, and operate ourselves. Read these as evidence of technical range and operating practice.

Visit Product

Project Overview

Methodeck is a personal productivity web service built around one shared task pool. Instead of registering the same work in different systems, users enter a task once and reinterpret it through Pomodoro, Kanban, Eisenhower, Eat the Frog, GTD, and time-blocking lenses. It includes a Today Hub for today, next-seven-days, and undated work, reflection and history flows, a responsive calendar, Google OAuth, and an optional read-only Google Calendar connection. Domain events drive server-side XP, streak, and badge projections; users can view progress and receive an acknowledgement-based unlock moment. The product also includes an in-app notification API with scheduled and read states.

Product screens

Today Hub for organizing today, next-seven-days, and undated work
Today Hub for organizing today, next-seven-days, and undated work
Desktop monthly calendar combining tasks and time blocks
Desktop monthly calendar combining tasks and time blocks
Mobile calendar combining monthly navigation with a daily agenda
Mobile calendar combining monthly navigation with a daily agenda
Pomodoro focus screen for starting a session, tracking time, and completing work
Pomodoro focus screen for starting a session, tracking time, and completing work
Kanban board for managing priorities and progress by dragging work across states
Kanban board for managing priorities and progress by dragging work across states
Evening Review for reflecting on completed and unfinished work
Evening Review for reflecting on completed and unfinished work
Rewards screen for viewing streaks and achievements through badges and progress
Rewards screen for viewing streaks and achievements through badges and progress
Eisenhower matrix for deciding the next action by urgency and importance
Eisenhower matrix for deciding the next action by urgency and importance
Morning Check-in for setting priorities and a focus plan for the day
Morning Check-in for setting priorities and a focus plan for the day
Day calendar for placing work by time and reviewing the day’s plan
Day calendar for placing work by time and reviewing the day’s plan
History timeline for revisiting accumulated work and reflections over time
History timeline for revisiting accumulated work and reflections over time

Key Challenges

  • Preserving a task exactly once while projecting it into six different execution methodologies
  • Keeping Today, calendar, reflection, and history surfaces consistent with the same task pool
  • Turning domain events into XP, streak, and badge projections without duplicate rewards or client-side tampering
  • Integrating Google Calendar with explicit consent, encrypted tokens, and a read-only data boundary
  • Modeling scheduled in-app notifications independently of the later delivery channel
  • Verifying GKE releases through public database-backed health checks and authenticated API behavior

Key Outcomes

  • Built and deployed a Turborepo product spanning Next.js, NestJS, PostgreSQL, shared contracts, and methodology definitions
  • Implemented Pomodoro, Kanban, Eisenhower, Eat the Frog, GTD, and time-blocking lenses over one task model
  • Built server-derived XP, activity/reflection/frog streaks, and eight badges with progress, filters, and a one-time unlock experience
  • Implemented scheduled in-app notification persistence and authenticated list/read API contracts
  • Added responsive Today Hub, calendar, reflection, and history workflows with desktop and mobile E2E coverage
  • Operated the public service at methodeck.com with Google OAuth and optional read-only Google Calendar integration

Technologies

Next.js 15React 19NestJS 11PostgreSQL 16Drizzle ORMts-restEvent-driven RewardsGoogle OAuthGoogle Calendar APIGKECloud SQL