Ground-truthed against the templates this pass: - dashboard.md: real section kinds (system shelves incl. Continue Series, user collections, custom sections via /custom-section builder), Customize Dashboard panel semantics (per-library, drag, switches, 10-50 items, Save Changes), Refresh, This Week widget, per-item Read/Listen and progress-conflict resolve actions. The old page listed a wrong shelf set and never mentioned custom sections. - library-browsing.md: the file was secretly titled 'Saving Custom Filters' and covered nothing else. Now the browsing page: All Books toolbar (search, Sort, Filters -> drawer hand-off, Save/Load/Clear saved filters), book detail as hub, series pages, podcasts split. - profile-guide.md: field table ground-truthed from profile_form.templ (username/email DO remain editable there), audio defaults (speed, resume rewind, keep awake), timezone rendering contract, both theme doors (7-pick select vs 37-theme Appearance panel), Change Password with live checks, Danger Zone/Remove My Account + last-admin rule. - podcasts.md NEW: the Podcasts page had zero documentation. Subscribing (Add Feed -> RSS URL, library, back-catalog download, download order, Add & Subscribe), Continue/All Feeds, Download All, player + Play as Sequence cross-link. - Trashed user-areas.md, frontend-guide.md, settings-guide.md: stubs whose planned content now exists as real pages (or duplicates profile-guide). user-guide.md rewritten as the plain-language front door with a go-here-when table; index.md rows updated to match. - ui-controls.md: 10 new gate-checked entries for every newly cited control (Add & Subscribe via templ-entity fragment).
2.6 KiB
Dashboard
The dashboard is your home screen: horizontal shelves ("sections") of your books, one row after another. What each shelf contains depends on the library you are looking at — including the All Libraries view, which mixes everything you can see.
The three kinds of section
| Kind | What fills it |
|---|---|
| System shelves | Bookhoard maintains them from your reading: Continue Reading, Recently Added, Recently Read, Not Started, Continue Series |
| Your collections | Every collection you create appears as its own shelf |
| Custom sections | Shelves you define yourself — by filter rules or by hand-picking books |
System shelves and collections are covered by their own guides (see Sync Guide for what "continue reading" means across devices, and Collections for the shelves you build). This page is about arranging the rows.
This Week
The dashboard also shows a small This Week summary — your reading time and activity for the week so far. Click it to expand the detail.
Customizing your shelves
- Pick the library in the Library bar (a specific library, or All Libraries) — settings are saved per library
- Click the Customize Dashboard button in the Library bar
- In the Customize Dashboard panel: drag sections into the order you want, switch sections on or off, and set how many items each section shows (10–50)
- Click Save Changes
The Refresh button next to it re-reads your libraries without a full page reload.
Custom sections
A custom section is a shelf whose contents you define — either with the same
filter rules the Filters drawer uses, or by picking the books yourself.
You build one on the Create Custom Section page (at /custom-section on
your server); once saved it behaves like any other shelf and can be ordered
and hidden with everything else.
Reading and listening from the dashboard
Point at a shelf and chevron buttons appear to scroll it. Every item carries a direct action: Read opens the web reader, Listen opens the audio player. If the same book has conflicting progress from two devices, the item grows a resolve action that takes you to conflict resolution — see the Sync Guide.
Keyboard and touch
- Tab moves between shelves and books; Enter opens the focused book
- Arrow keys scroll the focused shelf sideways
- On touch: swipe a shelf to scroll it, tap a cover to open it
Finding your way back: the dashboard is the page with the Library bar — the only place with the Customize Dashboard button.