Skip to main content

Public vs Private encoding

On what BookStack allows (capabilities), what its limitations are, and a set of tailored recommendations for implementing symbolic, wayfinding distinctions between public/private content within BookStack. 


What BookStack Supports / Constraints


From the official docs and community reports:


Capabilities

1. Roles & Permissions

• BookStack has a robust roles/permissions system. Roles are assigned globally and define asset permissions by default.

• Permissions can be overridden at Shelf, Book, Chapter, or Page levels. This allows specific content items or groups to be marked differently.

2. Public vs Private Visibility

• You can configure your BookStack instance to be entirely private behind login, or toggle public visibility for certain content. Public roles can be granted “view” privileges on specific shelves/books etc.

3. Customisation / Branding

• The UI allows changing application name, logo, core colours via Settings > Customization.

• Light / dark theme support is built-in.

4. Content Hierarchy & Metadata

• BookStack organizes content into Shelves → Books → Chapters → Pages.

• Books may appear in multiple shelves; shelves do not auto-cascade permissions automatically to all books in some cases (though you can copy permissions).


Limitations

1. Shelf Permissions Do Not Always Cascade Automatically

• Permissions set on a shelf can be copied to child books, but shelves themselves don’t automatically cascade in all situations, especially since a book can belong to many shelves.

2. Limited Permission Granularity in Some Cases

• There is a community request / issue about wanting more granular control—for example, separating “add/remove book to/from a shelf” from “edit shelf metadata” etc. That is not (yet) differentiated.

3. UI Indicators for Public/Private Status Are Minimal by Default

• BookStack doesn’t (out of the box) display large visual banners or icons to indicate “public vs private” beyond what permissions users have and whether content is viewable. The user must check permissions metadata or role behaviors.

4. Restricted UI Customization

• Some deeper styling may require custom CSS/hacks or modifications to BookStack code. The out-of-box customisation is for theme colours, logo, etc., not always full layout / icon additions.


Recommendations for Wayfinding / Marking Public vs Private in BookStack


Given what BookStack supports and its limitations, here are tailored recommendations to clearly mark public vs private content in your iLRN Codex instance using BookStack. Each recommendation includes how to do it (within or alongside BookStack) and why it helps.


# Recommendation Implementation Within BookStack / With Minor Extensions Why It Helps

1. Use Roles with Default View Permissions + Public Role - Define a “Public Viewer” role (or use BookStack’s built-in “Public” / “Everyone else” permissions) that has only view privileges.  - For shelves/books/pages you want public, override permissions to allow that role view access. For private content, ensure only members / internal roles have view.  - Use the “Permissions” action on Shelves/Books etc. to set “Everyone Else” → “View” or “Inherit” vs explicitly deny. Ensures that public vs private is enforced via access control, not just labels. Visibility maps to real permissions.

2. Leverage Metadata & Naming Conventions - Include “Public – ” or “Private – ” (or icons like 🌍 / 🔒) in titles of Books or Shelves.  - Possibly use suffix / prefix in Book / Shelf names so the label shows up everywhere (list views, search results).  - Make it policy that every new Book/Shelf must have the correct prefix. Quick visual recognition in menus, lists, search; reduces mis-placement or forgetting.

3. Visual Badges or Icons in Titles or Sidebar - Use BookStack’s custom CSS (via Settings > Customization) to inject a small icon next to titles when a Book or Shelf is marked private or public. Example: lock icon for private, open book / globe for public.  - If permission bit (or “public view allowed”) is stored in metadata / attributes, you may be able to conditionally show/hide icons via JS or CSS targeting.  - Alternatively, manually tag books/shelves with a tag like “public” or “private” and show tag badges with coloured backgrounds. Provides ambient, glanceable cue without relying on user remembering.

4. Banner / Notice on Book / Page Views - Add a custom banner or message in the Book or Page template (if BookStack allows minor template customization) indicating “This content is Private – Members Only” or “This content is Public – Shared Knowledge”.  - If template editing is possible, insert an alert bar at top when the user has view permission via only a restricted role. If not possible, as workaround include a first page “front matter” section in every Book stating the access level. Strong contextual reminder when viewing content; reduces risk of accidental sharing or mis-use.

5. Colour / Theme Accent for Private Books - Use custom CSS or CSS overrides to set background tint, border colour, or accent line for private books vs public books. For instance, private books could have a subtle darker header background; public ones could have a lighter or more vibrant accent.  - In book lists / shelf listings, modify CSS so private books have an icon badge + colour. Aesthetic consistency plus wayfinding via colour. Helps users build mental map of where they are in “public” vs “private” content.

6. “Public / Private” Badge in Page Header or Toolbar - In the BookStack page template (if you customize), include a badge near the page title or toolbar indicating the status. The badge could pull from permission settings.  - If you cannot do dynamic badges, manual inclusion in Book description or front matter might do: e.g. “Status: Private — iLRN Members Only” under Book title. Every page load gives clear clue; helps users avoid forgetting which context they are in.

7. Landing Page or Gate for Private Books - Use the BookStack “Permissions” feature: if a user without view access tries to access, they get the login or denied screen. But for users with view, maybe customize the first page in the Book to be a “Welcome / Notice” page explaining that this Book is private and to not share externally.  - You could also have a visual “cover” / first page with front matter that shows the access level. Sets expectations up front before reading; reinforces internal policy.

8. Separate Navigation or Tabs (“Public Library” vs “Members Library”) - In the main navigation (sidebar/menu), feature two major entries: Public Library (which lists all public shelves/books) and Members Library (private content).  - Alternatively, use tags or filter buttons to let users switch view between “Public content” and “Private/Internal content”.  - Possibly hide private shelves/books from public menu, only show them when logged in. Helps users orient themselves: which space they are in; limits public content exposure by default.

9. Enforce Review & Audit of Permissions - Periodic audit: identify Books/Shelves without explicit permission overrides, check titles for correct naming.  - Use BookStack’s UI “Permissions Active” indicators (which show in sidebar when permissions are overridden) to locate content that has custom permissions.   - Use permission reports or logs (if available) to verify. Minimizes drift: content accidentally becomes public or private without notice.

10. Documented Style Guide & Onboarding for Access Labelling - Maintain internal documentation (in BookStack itself) showing exactly what icons, naming conventions, banners, and CSS you’re using, with examples.  - Include in onboarding/training materials attention to “how to check access status” (how to see permissions, how to set prefix in name etc.).  - Part of the “5 steps” / maxim: include checking permissions (Confirm) as a practiced habit. Helps embed the behavior culturally; makes the cues shared among all contributors.


Plausible Implementation Roadmap (for iLRN Codex on BookStack)


Here’s how you might phase implementing these, given existing content and current capabilities.

1. Phase 1: Policy & Roles Setup

• Define roles (e.g. “iLRN Public”, “iLRN Member”, “Internal Staff”) with clear view permissions.  - Audit existing content: mark which content should be public vs private. Use the Permissions action to set overrides where needed.

2. Phase 2: Naming and Tags

• Standardize naming prefixes (“Public – …”, “Private – …”) for Books / Shelves.  - Create tag system: tag “public” / “private” or similar; enable display of tags in lists.

3. Phase 3: Visual & Template Customization

• Use BookStack’s “Settings → Customization” to set core colours that align with public/private distinction (if possible).  - Add custom CSS / JS to insert small badges or icons in Book / Shelf listing pages. Possibly customize BookTemplate to include a status banner.  - For new Books, prepare a “front matter” start page that includes access level.

4. Phase 4: Navigation & UI Adjustments

• Modify sidebar/navigation to include or highlight public vs private libraries.  - Possibly create dashboard or landing page that separates content by access type.

5. Phase 5: Training & Onboarding

• Use your scripts / video to train users where to look to see access; how to label content properly.  - Update documentation with examples.  - Regularly (quarterly or biannually) audit for compliance.

6. Phase 6: Monitor / Iterate

• Solicit feedback: are users confused about what’s public vs private?  - Track errors or misuse (sharing private content externally).  - Tweak visual cues: adjust colours/icons/banner placements as necessary to increase visibility.