---
title: v0.15.0
description: "New `private = true` collection flag builds a collection's hub and pages but keeps them out of every public discovery surface (sitemap, llms.txt, search index, feeds, homepage) — for content placed behind Cloudflare Access or HTTP auth."
date: 2026-06-24
tags:
- feature
---

## Private collections (gated content)

Collections can now be marked `private = true` to build fully while staying out of every public discovery surface. This is the missing piece for putting a section — like the bundled Trust Center — behind Cloudflare Access or HTTP auth without leaking it.

```toml
[[collections]]
name = "trust"
private = true
url_prefix = "/trust"
default_template = "trust-item.html"
```

### What `private` does

- **Builds everything.** Every item page *and* the auto-generated hub/index page render normally — with the collection's index template and full context (`collections`, `data.*`) — for the default language and every `/{lang}/` variant. Unlike `listed = false`, the hub is **not** suppressed.
- **Hidden from discovery.** The collection's pages are excluded from the homepage listing, `sitemap.xml`, `llms.txt`, `llms-full.txt`, `search-index.json`, RSS/Atom feeds, and tag pages.
- **`noindex, nofollow`.** Every private page is stamped with `<meta name="robots" content="noindex, nofollow">` unless the page sets its own `robots` frontmatter.
- **Still navigable.** Internal links resolve normally, and the `.md` alternates keep generating (they live under the gated path).

`private` is independent of `listed`: the hub renders even when the collection is hidden from the homepage. The build logs how many pages were excluded, e.g. `12 private pages excluded from discovery`.

### Backward compatible

Absent `private` (or `private = false`) is the existing behavior, byte-for-byte. The flag composes with `subdomain`, `paginate`, and the rest.
