feat: add endpoint reachability checker page - #643
Merged
Conversation
Closes #472 - Add component that lets users check all Shorebird endpoints in parallel from their browser. Each endpoint is probed with a no-cors HEAD request so the tool works from any device (phone, desktop, restricted network) without CORS issues. - Add page that embeds the checker, explains what each endpoint is used for, and provides remediation steps when an endpoint is unreachable. - Update ("Can you use Shorebird in your country?") to link to the new page.
- Use is:global styles so they apply to JS-generated DOM nodes - Pill-shaped badges with colour-coded states (idle/checking/reachable/unreachable) - Animated pulsing dot while checking - Light and dark mode colour variants - Clean row layout with monospace URL + muted description - Accent-coloured button with focus ring and active scale
--sl-color-accent-high resolves to gray-100 (near-white) in dark mode, causing the button to flash white on hover. Replace with a darkened color-mix of the accent colour instead.
The solid bg-sidebar background made the 1px row separator above appear as a dark line floating at the top of the hover area. A subtle accent tint blends with both the separator and the page background, eliminating the false 'top padding' effect.
With border-bottom, the separator belongs to the row ABOVE the hovered one, so it shows as a dark stripe at the top edge of the hover area. Switching to border-top means the separator belongs to the hovered row itself. We then set border-top-color: transparent on :hover and on the immediately following row (:hover + .ec-row) to eliminate the dark stripe, giving a seamless edge-to-edge hover highlight.
Starlight's .sl-markdown-content :where(div) rule injects margin-bottom on all div elements inside the content area, including the dynamically created ec-row and ec-row-info divs. This caused bottom spacing and broke vertical centering. Explicit margin: 0 overrides it.
- Replace all em-dashes (—) with commas or full stops - Remove the 'Check Shorebird status' step pointing to status.shorebird.dev which does not exist - Renumber remediation steps from 4 down to 3
The tool checks network-level reachability, not HTTP correctness. storage.googleapis.com returns 400 and cdn.shorebird.cloud returns 405 for HEAD / — both are valid HTTP responses that confirm the server is reachable. Update the note to make this explicit.
- Add cspell:ignore comment for 'white-space' CSS property which is flagged as a forbidden word by the very_good_dictionaries forbidden list - Capitalise 'shorebird' -> 'Shorebird' in the endpoint table to satisfy Vale.Terms proper-noun check
The endpoint URLs in backtick code spans are scanned by Vale.Terms (unlike link destinations, which Vale skips). The existing TokenIgnores entries in .vale.ini only cover link-href contexts, so they don't help here. Using vale off/on HTML comments is the standard approach for tables/code where lowercase is intentional.
- Replace backtick code-span URLs with markdown links in the table.
Link destinations are skipped by Vale so lowercase 'shorebird' in
hrefs is never flagged. This also fixes the MDX build error caused
by <!-- vale off --> (invalid JSX) and {/* vale off */} (not
recognised as a Vale directive).
- Add auth.shorebird.dev, download.shorebird.dev, cdn.shorebird.cloud
to TokenIgnores in .vale.ini so Vale.Terms doesn't flag the link
text for the three endpoints not previously covered.
eseidel
approved these changes
Sep 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #472
Summary
Adds an interactive Endpoint Reachability page under the System section
that lets users verify connectivity to all Shorebird endpoints directly from
their browser or mobile device — without needing any tooling installed.
Changes
New:
src/components/EndpointChecker.astroAn interactive Astro component that:
no-corsHEAD requests (works from anybrowser/device without CORS issues)
Reachable / Unreachable
New:
src/content/docs/system/endpoint-reachability.mdxA docs page under System that:
EndpointCheckercomponent at the toponly a network-level failure (