Skip to content

Add a landing page for the book at /book - #42

Merged
lbesecker195 merged 3 commits into
mainfrom
feat/book-landing-page
Sep 20, 2026
Merged

lbesecker195 merged 3 commits into
mainfrom
feat/book-landing-page

Conversation

@lbesecker195

Copy link
Copy Markdown
Owner

Closes #41.

The sidebar slot sent visitors from a 250px tile straight to a product page — a cold click with no context. It now lands on /book, and the affiliate link and its disclosure move there.

The page

  • Leads with the symptom, not the cover — "Your MCP server works. Agents still can't find it." The cover and price sit beside it, with the primary CTA above the fold.
  • Six failure modes the reader will recognise (agents never find it, the name doesn't resolve, tools: [], installed-then-removed, a README serving nobody, measuring traffic instead of connects).
  • Ten chapters in the order they bite, so the scope is legible before anyone spends $29.99.
  • Proof that can be checked on this site. The book describes MCP Harbor, so the page links to /llms.txt, the JSON API and a listing's metadata and invites the reader to audit the advice before buying. That is a stronger and more honest credibility lever than a review score.
  • FAQ handling the four real objections, then a closing CTA.
  • schema.org/Book with both editions, for a rich result.

Facts and honesty

Every fact comes from the product listing: 244 pages, ISBN 979-8174638471, published 15 September 2026, paperback $29.99, hardcover $49.99, Logan R Besecker. The prose is written for this page rather than lifted from Amazon.

No rating or bestseller claim appears anywhere, and there is deliberately no aggregateRating in the structured data — the book has no ratings yet, and marking one up is both a lie a reader can check in one click and a structured-data manual-action risk. A test asserts their absence.

Both disclosures are on the page: the link earns a commission, and the author maintains this registry.

Two bugs found while building it

  1. Inside ~H, @asin reads assigns.asin — never the module attribute. Every fact in the template was reading an assign that did not exist, and the page would have raised at render.
  2. HEEx does not interpolate {...} inside a <script> body. The JSON-LD was shipping the literal string {raw(@structured_data)} to crawlers. It uses EEx now, with Jason.encode!(escape: :html_safe) so nothing in the data can close the element early.

92 tests pass, including one that parses the JSON-LD and one that pins the absence of rating claims.


Pages affected:

🤖 Generated with Claude Code

Logan Besecker and others added 3 commits September 19, 2026 12:03
The sidebar slot sent visitors from a 250px tile straight to a product page,
which is a cold click with no context. It now lands here, and the affiliate
link and its disclosure move to this page.

- Lead with the reader's symptom, not the cover: a server that runs but never
  gets connected to
- Set out the ten problem areas and a thirty-day playbook, so the scope is
  legible before anyone spends $29.99
- Offer proof that can be checked on this site -- llms.txt, the JSON API and a
  listing's metadata are what the book describes
- Mark it up as schema.org/Book with both editions, and deliberately no
  aggregateRating: the book has no ratings, and inventing one is a lie a
  reader can check in a single click

Two bugs found while building it. Inside ~H, `@asin` reads assigns rather than
the module attribute, so every fact was an assign that did not exist. And HEEx
does not interpolate curly braces inside a <script> body, so the JSON-LD was
shipping the literal text `{raw(@structured_data)}` to crawlers; it uses EEx
and html_safe encoding now.

---

Pages affected:

- [MCP Server Optimization](https://ai.mcpharbor.dev/book) — the new landing page for the book.
- [MCP Registry](https://ai.mcpharbor.dev/) — home page of the server directory.
- [Browse MCP servers](https://ai.mcpharbor.dev/servers) — catalogue whose sidebar carries the slot.
- [Agent instructions](https://ai.mcpharbor.dev/llms.txt) — one of the proof links the page offers.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Drop the two GitHub links, source and wiki
- Put the book in their place, so the Project column is not a single item
- Tie the DB-IP credit to whether the geo database is actually loaded

The DB-IP credit is a CC BY 4.0 licence condition on using the data, not a
recommendation, so deleting it outright would have been wrong the moment geo
blocking came back. Geo blocking is currently off, nothing loads that
database, and the credit is therefore not shown -- and it reappears by itself
if GEO_BLOCK_ENABLED is ever set, rather than depending on someone
remembering. A test pins both directions, and another fails if any host other
than the analytics one appears in the footer.

---

Pages affected:

- [MCP Registry](https://ai.mcpharbor.dev/) — home page carrying the revised footer.
- [Browse MCP servers](https://ai.mcpharbor.dev/servers) — the catalogue of Model Context Protocol servers.
- [MCP Server Optimization](https://ai.mcpharbor.dev/book) — the book, now linked from the footer.
- [Submit a server](https://ai.mcpharbor.dev/submit) — add your own MCP server listing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
gateway.mcpharbor.dev is a sister property on the same root domain -- one
Model Context Protocol endpoint covering 139 tools across 16 servers -- so it
belongs beside the registry's own agent-facing entrypoints rather than being
treated as an outbound link.

- Add "gateway" to the header nav, next to llms.txt
- Add "MCP Gateway" to the footer's For agents column, beside the MCP endpoint
- Vary the anchor text between the two placements
- Widen the footer's allowed-host list to cover it, and assert the header
  carries it too

---

Pages affected:

- [MCP Registry](https://ai.mcpharbor.dev/) — home page carrying the revised navigation.
- [Browse MCP servers](https://ai.mcpharbor.dev/servers) — searchable catalogue of MCP servers.
- [MCP endpoint](https://ai.mcpharbor.dev/mcp) — the registry's own MCP server, linked beside the gateway.
- [Agent instructions](https://ai.mcpharbor.dev/llms.txt) — plain-text guide for agents.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@lbesecker195
lbesecker195 merged commit 0bea34e into main Sep 20, 2026
3 checks passed
@lbesecker195
lbesecker195 deleted the feat/book-landing-page branch September 20, 2026 04:00
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.

Add a dedicated landing page for the MCP Server Optimization book

1 participant