Layers¶
Layers are the way PlainShelf organizes books into groups. They map directly to sub-directories inside the books/ folder of your shelf.
What is a layer?¶
A layer is a named directory that sits between the books/ root and one or more book folders. You can nest layers inside other layers to build a tree-shaped hierarchy.
books/
├─ {book}.bookpkg/ # book at the root (no layer)
├─ Fiction/
│ ├─ {bookA}.bookpkg/ # book inside the "Fiction" layer
│ └─ Classics/
│ └─ {bookB}.bookpkg/ # book nested two levels deep
└─ Non-Fiction/
└─ {bookC}.bookpkg/
Key properties¶
- Filesystem-backed — layers are real directories; they survive a server restart and can be browsed in any file manager.
- Nestable — there is no hard limit on nesting depth.
- Independent from book IDs — moving a book between layers does not change its ID or break reading progress.
- Managed via the UI — the web interface lets you create layers, delete empty layers, and move books between layers without touching the filesystem manually.
Layer rules¶
- A layer cannot be deleted while it still contains books (you must move or delete the books first).
- A book can only belong to one layer at a time (it lives in exactly one directory).
- The
books/root itself acts as a "no layer" / top-level group.
Example use cases¶
| Use case | Layer structure |
|---|---|
| Genre classification | Fiction/, Non-Fiction/, Poetry/ |
| Reading status | To Read/, Reading/, Done/ |
| Language | English/, 中文/, Français/ |
| Mixed | Fiction/English/, Fiction/中文/ |
Because layers are just directories, you can reorganize them freely without losing any book data.