Skip to content

Add a compatibility page for the v2 server (hidden until v2 ships) - #41

Merged
zlshames merged 2 commits into
masterfrom
compatibility-page
Sep 18, 2026
Merged

zlshames merged 2 commits into
masterfrom
compatibility-page

Conversation

@zlshames

@zlshames zlshames commented Sep 18, 2026 •

Copy link
Copy Markdown
Member

Builds /compatibility from the server's capability catalogue — but hidden, because it describes the v2 Swift server and v1 is what ships today.

Why it is hidden

The page reflects the v2 Swift server: macOS 14 and newer, 23 capabilities from CapabilityCatalog.swift.

The server shipping today is v1.x on Node.js, which runs on Mojave through Ventura with a different feature set. Publishing this now would tell a Ventura user they are unsupported when v1 supports them fine.

So it is hidden exactly as /pricing is — no nav or footer link, noindex, out of the sitemap — while the route still resolves and is still asserted in the build, so it cannot rot while it waits.

The page also states its own scope on the page itself, so it is never silently wrong about which server it describes.

What it does, for when it launches

All 23 capabilities grouped by category, each with its macOS floor, and the macOS picker:

Release Supported
Sonoma (14) 16 of 23
Sequoia (15) 20 of 23
Tahoe (26) 23 of 23

To launch, once v2 is out

  1. Add /compatibility/ back to NAV_LINKS and FOOTER_LINKS in src/data/site.ts
  2. Drop noindex from the page
  3. Remove the sitemap exclusion in astro.config.mjs
  4. Decide what the FAQ's v1 tables should say, since both servers will be in use

Steps 1–3 are listed in a comment at the top of the page.

Also in here

  • The macOS picker is now a shared component. It was inline on the pricing page; both pages use one copy, so the cumulative rule cannot diverge. Verified pricing is unchanged: 10 cards, 5/7/10 across releases, still noindex, prices intact.
  • The FAQ's existing tables are untouched and remain the public answer, which is correct — they describe the v1 server people are actually running.

🤖 Generated with Claude Code

zlshames and others added 2 commits September 18, 2026 16:13
What the Private API can do depends on the macOS version on the server Mac,
and the only place that was written down was a pair of hand-maintained HTML
tables inside a single FAQ answer -- behind an accordion, inside a
category, three clicks from anywhere. It is the most decision-relevant
content on the site and was the least visible.

/compatibility lists all 23 capabilities, grouped by category, each with
its macOS floor and a one-line summary, and reuses the macOS picker: choose
a release and the page highlights what it supports. 16 of 23 on Sonoma, 20
on Sequoia, 23 on Tahoe.

Data is copied from the server's CapabilityCatalog.swift -- ids, titles,
summaries, macOS floors and categories -- so the page and the server
describe the same thing rather than drifting.

Deliberately no subscription tier on this page. It answers "does my Mac
support this", which is a different question from what a plan includes, and
Pro is not announced. Adding a tier badge later is additive, and nothing
here links to or mentions /pricing, so that page stays undiscoverable --
asserted in the build.

The picker itself is now a shared component. The pricing page was the only
user and had the markup and ~40 lines of script inline; both pages now use
one copy, so the cumulative rule cannot diverge between them. Verified the
pricing page is unchanged by the refactor: 10 cards, 5/7/10 across the
releases, still noindex, prices intact.

Linked from the header and footer, since being findable is the point.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The page describes the v2 Swift server, which supports macOS 14 and newer.
The server shipping today is v1.x on Node.js, which runs on Mojave through
Ventura and has a different capability set. Publishing this now would tell
a Ventura user they are unsupported when v1 supports them perfectly well.

So it is hidden exactly as /pricing is: out of the header and footer, out
of the sitemap, noindex. The route still resolves and is still asserted in
the build, so it cannot rot while it waits.

The page also now states its own scope -- "BlueBubbles Server 2.0 and
newer... earlier macOS releases are supported by the 1.x server, which has
a different feature set" -- so it is not silently wrong about which server
it describes, whenever it does go live.

Launch steps are in a comment at the top of the page.

The FAQ's existing tables are untouched and stay the public answer for now,
which is correct: they describe the v1 server that people are actually
running.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@zlshames zlshames changed the title Add a compatibility page driven by the capability catalogue Add a compatibility page for the v2 server (hidden until v2 ships) Sep 18, 2026
@zlshames
zlshames merged commit 9017a3f into master Sep 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant