UX: continue where you left off
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2
- Forks
- 1
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 7
Description
Part of the UX backlog. Raised on 2026-06-11 as "resume in progress" navigation.
Progress is already tracked well enough to support this — lib/progress.ts stores completedSections and lastSection per module, and as of 2026-07-29 lastSection records the section the reader is currently on, so a module reopens where they left off.
What is missing is the way in. Neither CatalogClient (homepage) nor LevelCatalogClient (level page) offers a "continue" affordance: grep for resume or continue in both returns nothing. A returning reader has to remember which track, which level and which module they were on, and click through three pages to get back.
Scope
- Surface the most recently touched module as a direct link — "Continue: PHP Beginner, Module 4".
- Decide where it lives: the homepage is the natural spot, since that is where people land.
Notes
getProgress() returns the whole store keyed by track/level/moduleId, so "most recent" needs either a timestamp per module (the store has no updatedAt today) or a single "last visited" pointer written on section change. The store is versioned (version: 2), so adding a field is a migration-friendly change.
Done when
A returning reader can get back to where they were in one click from the homepage.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with lib/progress.ts to understand completedSections, lastSection, getProgress(), and the versioned store, then inspect CatalogClient and LevelCatalogClient for the homepage and level navigation. Decide how the store records the most recently touched module and expose it on the homepage as a direct continue link. Done means a returning reader can reach their previous module from the homepage in one click.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100