Today
Tasks
Schedule
Daily counters
Day clock
Two things at once? The one closer to now takes the outer lane.
Daily goals for every category you grind, a focus timer, a LeetCode log that knows a rerun from a solve, an application tracker with a funnel, schedule blocks that step around your gym and classes, streaks, pace against your plan and a finish-line forecast. Phone first, laptop ready.Daily goals, a focus timer, a LeetCode log, an application tracker and a schedule that steps around your life.
Two things at once? The one closer to now takes the outer lane.
The same clock follows you to every tab. Press Done and it asks how the problem went.
The real screens, played through: a solve with its note, a job logged by an agent, a task and a grind session, a block in Quick Copy. The cursor is the only thing that is fake.
| Date | Job title | Company | Platform | Salary | Location | Status | |
|---|---|---|---|---|---|---|---|
| Sep 9 | Software Engineer ↗ | Interstate | $80k–$110k | Teaneck, NJ | Applied ⌄ | ✕ | |
| Sep 9 | Developer, Analytics ↗ | Versant Media | – | New York, NY | Applied ⌄ | ✕ |
These are the real components on sample data. Change a status, log an attempt, type the PIN, book a slot.
Attempts, reruns, one note per problem, solve-time stats.
A funnel by status, platforms, and an API key for an agent.
Streak, pace against the plan, weekday pattern, finish-line forecast.
Read-only progress behind a PIN. Friends book your free time.
A read-only key so Claude reads your log the way the app counts it.
A problem's state is its newest attempt. Reruns stack on the same name, so "solved" means solved clean, not "touched once".
Bottom-up DP over amounts. dp[a] = min coins for a. Slow the first time because I recomputed subproblems; second try 31m.
dp = [0] + [inf] * amount
for a in range(1, amount + 1):
for c in coins:
if c <= a:
dp[a] = min(dp[a], dp[a - c] + 1)
return dp[amount] if dp[amount] < inf else -1One living note per problem, with a code block and an array visualiser for pointer problems. The timer's "Done" opens the log with the minutes filled in.
Change a status on the right and watch it move.
A separate API key gives Claude Code full access to this tab only: log, find, edit, change status, delete. Adding bumps today's counter, deleting takes it back.
Pace counts clean solves only. Attempts count for the daily goal. Solve-time stats count solved and slow. Three questions, three sets.
A read-only key exposes three endpoints: LeetCode, jobs, progress. Every response starts with a guide that spells out the counting rules for your account, so the model reads the numbers the way the app counts them. Works in Claude Code and in claude.ai chat.
Notes are never returned. The key cannot write. Regenerate it any time from Settings.
Nothing is seeded and nothing is assumed. The wizard builds your plan, your categories and your schedule, and every answer can be changed later in Settings.
Email and password. No social sign-in, no tracking, no newsletter.
Each one is a single screen with a live preview. The seven screens run in the order shown below.
Your goals, your blocks, your timer. Log a problem, press + on a ring, check in to a block. The streak starts counting.
LeetCode and Applications come with tools. Add system design, a course, reading. Each gets a weekday, weekend and low-load goal.
Gym, a class, a shift. Pick the days and hours, optionally a date range. Grind blocks step out of their way.
Morning, Night owl, Weekend. Switch the default from the Today page, pin one to a weekday.
Exams, travel, guests. Goals drop, a lighter layout applies, the streak stays fair.
Every day, streak and deadline is counted in your own local time. 12 or 24 hour clock.
Turn off what you do not use: LeetCode, Jobs, Quick Copy, the day clock, friends booking. The tab and its routes disappear.
Every account gets a separate SQLite database inside a Cloudflare Durable Object. There is no shared table of user data, so one user's rows are unreachable from another's by design, not by discipline. A small central store holds only accounts, sessions and key hashes.