Pastor bookmarks and reuses illustrations
Persona
A pastor who prepares sermons on a rotating basis — Advent, Lent, Easter, Pentecost repeat annually. They save their favorite illustrations by theme or sermon series so they can quickly find them when preparing next year's sermon. Their library grows year over year without re-searching every Sunday.
Entry points
- From illustration detail page — Clicks Favorite (heart) or "Add to Collection" while reading.
- Favorites page —
/favorites— all saved illustrations. - Collections page —
/collections— named collections (e.g., "Advent 2026", "Prayer Requests"). - Email reminder — "This Sunday's top illustrations" MailerLite email (if opted in during signup).
- Bookmarked browser link — Returns to
/illustrations/[slug]; full content renders if still premium.
Click-through flow
Steps
-
Save illustration to Favorites — Heart icon (outlined → filled on click). Toast: "Added to Favorites." POST to
/api/favoritesinserts a row intouser_favorites(user_id,illustration_id,created_at). Illustration appears on/favorites. -
Create and add to a collection — "Add to Collection" button (folder icon) opens a modal: dropdown of existing collections + "+ Create New Collection" option. First time: enter name (e.g., "Lent 2026") → click "Create" → illustration added. Subsequent times: select existing collection from dropdown. Collections stored in a
user_collectionstable or equivalent in user metadata; adding appends theillustration_id. -
View Favorites page —
/favorites: "Your Favorites" heading, grid of all saved illustrations sorted by save date (newest first). Each card shows title, teaser, type badge, tradition badge. Empty state: "Start saving illustrations" prompt with/searchlink. Click a card to view detail. -
View Collections page and manage —
/collections: list of named collections with illustration count. Click to open — renders same grid view filtered to that collection's IDs. Rename (pencil icon) and delete (X icon) available. Collections sorted by most recently added-to. -
Reuse illustrations the following year — Open "Lent 2027" collection; all saved illustrations from last year are there. Add new ones, remove ones that didn't land well, sort or filter. Collections persist across time as long as subscription is active; if subscription lapses, collection page loads and shows saved items but detail pages show gates. On reactivation, full content is immediately accessible again.
Acceptance spec
Canonical: knowledge/acceptance/itw-premium.md (Touchpoints T10 — Favorites page, T11 — Collections page).
Gating note (from spec): Save and collection-add actions are Premium-only — free users should see the buttons but clicking them triggers an upgrade CTA. The /favorites and /collections pages themselves are accessible to all logged-in users (to view saved items), but the actions are gated.
Success criteria
- Clicking Favorite shows a "Added to Favorites" confirmation.
/favoritesshows all saved illustrations in a clean grid.- Can create a named collection directly from an illustration's "Add to Collection" button.
/collectionsshows all collections; clicking one shows all illustrations in it.- Next year, the collection is still there; all illustrations still accessible.
- Favorites and Collections sync across devices (stored in Supabase, not local storage).
Known failure modes
-
Collection create/add gating incomplete. Free user clicking "Add to Collection" should see upgrade CTA, not the modal. Verify gating in route and modal component. Issue:
interview-action-items.md #7. -
Collections feature completeness uncertain. Before relying on this journey, confirm the feature is end-to-end functional: create, view, delete, rename, add/remove. See acceptance spec Touchpoint T11 flagged note.
-
Cross-device sync. If using browser local storage instead of Supabase, Favorites and Collections will NOT sync across devices. Verify all data stored in
user_favoritesanduser_collectionstables, fetched on page load. -
Subscription lapse data persistence. If subscription lapses, Favorites and Collections data must remain in DB. On reactivation, immediately accessible again with no re-setup. Verify: cancel subscription →
/favoritesstill loads (data visible, detail pages gate) → reactivate → detail pages unlock.