Problem: Readers want to mark chapters they're studying or plan to return to — a digital equivalent of placing a physical bookmark in a Bible.
Solution: A simple bookmark system that lets users mark entire chapters. Bookmarks are stored in localStorage (no server, no account required) and available on the free tier.
Not included: Verse-level bookmarks, bookmark folders, or bookmark notes. This is a minimal "mark this chapter" feature.
Users can bookmark any chapter and see their bookmarks listed on a dedicated page.
User flow:
/bookmarksEdge cases:
Bookmark action: Available in the verse context menu as "Bookmark" with a bookmark icon.
No visual indicator in the reader — unlike notes, bookmarked chapters don't show a visual marker in the text.
Storage: Entirely client-side — localStorage under key bibleweb_bookmarks. No API, no database table.
Data shape: Array<{ bookId: number, chapter: number, createdAt: string }>
Store (bookmarks.svelte.ts):
initBookmarks() — reads and JSON-parses from localStorage on mountaddBookmark(bookId, chapter) — pushes to array + persist() (localStorage.setItem)removeBookmark(bookId, chapter) — filters array + persistsisBookmarked(bookId, chapter) — O(n) linear scangetAllBookmarks() — returns sorted copy by createdAt DESCFiles:
apps/web/src/lib/stores/bookmarks.svelte.ts — bookmark store + persistenceCurrent: DONE Milestone: v1 Priority: Medium — simple but frequently used
History:
Dependencies: