Landing page: capability page for prospective sitters#26
Merged
Conversation
The root page (`/`) was a single button into the admin dashboard. Grow the `LANDING_HTML` template into a full landing page aimed at a dog walker / pet sitter deciding whether to adopt Pawbook, while keeping the existing warm "ledger / day book" aesthetic and the locked-CSP constraint (inline styles only, no JS — FAQ uses native <details>). - Tells the real capability story (embed on your site, set your own services/rates/rules, capacity & time-off, confirm/decline bookings, clients & pets & CSV import, payment tracking + earnings, Google Calendar push) instead of a generic feature grid. - Honest about the limits up front: primary CTA is the live demo (not the admin login a prospect can't pass), a visible line states it's open-source and self-hosted with no signup button yet, and the payments + signup FAQ answers are expanded by default so the real constraints aren't hidden. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The first version had good copy and theme but a templated skeleton that read as AI-generated when rendered: five identical numbered rows, a +/- FAQ accordion, and a single centered column repeating one section formula. Rebuild the skeleton (hero card, embed slip, and honest copy kept as-is): - Capabilities: drop the "No. 1-5" clone rows for real hierarchy — one lead statement given room, then the rest as a ledger "book of accounts" (mono account-label -> plain value) grouped under running sub-heads. Asymmetric two-column on desktop, stacks on mobile. - FAQ: remove the accordion; answers are always visible in a two-column grid with the honest limits (no card payments, one-way calendar sync, no per-pet pricing, invite-only, dogs/cats only, no signup yet) leading in bold. - Break the single-ribbon monotony: alternating recto/verso running heads and two genuinely asymmetric sections so no two sections open the same way. Rendered and reviewed at desktop and ~400px mobile; no horizontal overflow. Still script-free under the locked CSP; tsc + landing tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3 tasks
bradburch
added a commit
that referenced
this pull request
Jul 15, 2026
Restore aria-hidden="true" on the decorative .ledger sample-entries card so screen readers stop announcing fictional bookings (Bella $180 boarding, Otis $22 dog walk, ...) as real content — the redesign in #26 dropped it while the inner stamp/marginalia kept theirs. Also correct the LANDING_HTML doc comment, which still claimed the FAQ used <details>/<summary>; the redesign made it a static Q&A with no <details> element, so the comment now says the page has no interactivity at all. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
What
Grows the root page (
/) from a single "open the dashboard" button into a real landing page aimed at a prospective dog walker / pet sitter deciding whether to adopt Pawbook. Keeps the warm ledger / day book aesthetic and the locked-CSP constraint — inline styles only, no JavaScript (the served body contains no<script>tag; the displayed embed snippet is HTML-escaped).Two commits: the initial capability page, then a redesign that sheds the templated / AI-generated feel after reviewing it rendered in a browser.
Design
<script>/iframe snippet shown in a receipt-style slip, with Squarespace/Wix + script-stripping-host fallback.Verification
npm test— 46 files / 336 tests pass; the landing test confirms the served body is script-free andX-Frame-Options: DENYholds.tsc -bclean.0<details>,0No. Nnumbered rows,0literal<scriptin the served body.Scope: one file,
server/index.ts(theLANDING_HTMLtemplate). Based onorigin/main, independent of thecustom-serviceswork.🤖 Generated with Claude Code