← Selected work
Learning completion productPrivate beta

commit_

A curriculum tracker that turns study sessions into commits, progress into a contribution graph, and unfinished learning into a visible completion loop.

RoleSolo product engineer
Timeline2025–present
Verified2026-08-11
An illustrative roadmap view showing a study session becoming progress, pacing, and the next action.

The problem

Self-taught developers often collect courses faster than they finish them. Existing trackers record tasks but rarely help users maintain momentum.

Completion looplog → streak → next action → nudge → celebrateowner-verified evidence
SQLite → Postgressame product model across local and production environmentsowner-verified evidence
Private betastatus is intentionally conservative until public access is verifiedsanitized evidence

The constraints shaped the system

  • Progress needs to feel encouraging rather than punitive.
  • The data model must support programs, semesters, courses, and checkpoints.
  • Local development and hosted production need a low-friction schema path.

The engineering decisions

01

Curriculum as a hierarchy

Programs, semesters, courses, and checkpoints create a flexible model for different learning paths.

A flat task list would make ETA and roadmap behavior brittle as curricula change.
02

ETA without shame

Pacing logic translates remaining work into an achievable daily target rather than a failure state.

The product treats schedule changes as normal state transitions, not user failure.
03

Operational reminders

Daily email digests use Resend with a development fallback, keeping the reminder path testable locally.

The product remains useful without making email delivery a hard dependency for local work.

Architecture

Commit is built as a full-stack Next.js product with a relational curriculum model, Prisma persistence, authentication, email reminders, and a local SQLite path that can move to Postgres in production.

  • Programs → semesters → courses → checkpoints
  • Server-owned progress and ETA calculations
  • Resend delivery with a safe local fallback

Behavior design

The interface uses Git language as a mental model, but the product goal is completion. Streaks and badges reinforce visible progress while pacing nudges avoid framing a missed day as a failure.

What I would improve next

Before a wider launch, I would verify the public app status, publish an honest onboarding path, and measure whether reminders help users return without creating notification fatigue.

Videx

A private local video and audio download manager with a guided CLI, browser interface, persistent queue, and no hosted processing backend.

Read next