Skip to content

feat: merge the Direct Connect deep dive (cross-connect) in as a second page - #16

Merged
kanywst merged 7 commits into
mainfrom
feat/direct-connect-deep-dive
Nov 8, 2026
Merged

kanywst merged 7 commits into
mainfrom
feat/direct-connect-deep-dive

Conversation

@kanywst

@kanywst kanywst commented Nov 8, 2026

Copy link
Copy Markdown
Member

Merges the 0-draft/cross-connect site (AWS Direct Connect deep dive) into this repo as a second page, direct-connect/, so there is one site and one set of DX facts.

What changes

  • New page direct-connect/index.html → src/direct-connect.tsx → src/app/DirectConnectApp.tsx. All 15 cross-connect sections, their labs (BGP path selection, resiliency failures, LAG/MACsec, allowed prefixes, pricing estimate, myth quiz, timeline, glossary with toggletips) and their unit tests move to src/features/direct-connect/. EN/JA parity is unchanged; both pages share the language and theme switches.
  • Design language: the page uses this site's header (with its own stop list and a link back to the map), footer, fonts, palette and section signs ("DX n" plate). cross-connect's token names are mapped onto the road-map palette in one .dx-deep block, so dark mode and route colours follow the site. The mascot is replaced by a status sign in the labs and a "In plain words" aside for the analogies.
  • One DX price list: src/data/dxPricing.ts (port-hours, DTO matrix, flat-rate tiers). The road map's cost lab now derives every DX price from it (with a test that pins this), and the deep dive's estimator reads the same file. In the docs, docs/direct-connect/10-pricing.md is the only DX price table; docs/04 keeps a short summary and docs/12 links to it instead of repeating rows.
  • Links: every link that pointed at 0-draft.github.io/cross-connect/#… (DX exit, hubs, routing, cost, quiz, timeline, glossary, footer) now points at the deep dive on this site, keeping ?lang=ja.
  • Research notes: cross-connect's docs/ → docs/direct-connect/; cross-repo doc links became relative.
  • Freshness: one monthly checklist covers both pages (AS_OF for the map, DX_AS_OF for the deep dive and the DX price list).
  • E2E: cross-connect's layout spec runs against direct-connect/; the axe WCAG 2.2 AA run now covers both pages in EN/JA × light/dark; a new test walks map → deep dive → map with the language kept.

No visual baselines exist in either repo, so none were updated.

Verification (local)

  • npm run check: typecheck, ESLint, Prettier, markdownlint, 244 Vitest tests, build — all pass
  • actionlint — clean
  • Playwright could not run locally (browser download blocked in my environment); relying on CI's e2e job for layout and axe.

@coderabbitai

coderabbitai Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 1232b80d-4b47-41d2-a634-05991fcd064e
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

title: { en: "Myth or fact?", ja: "ほんと? うそ?" },
lead: {
en: "Ten things people commonly believe about Direct Connect. Pick an answer on each card to see whether you were right.",
ja: "Direct Connect についてよくある思い込みを 10 個。カードごとに答えを選ぶと、正解と理由が出ます。",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The intro says "Ten" / "10 個", but MYTHS in content/myths.ts has 11 entries (11 truth: fields). Either the count or the data is off. Better to derive the number from MYTHS.length than hard-code it in copy. The same "ten" appears in README.md:53 and README.ja.md:53 ("10 問").

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. The lead now uses MYTHS.length, and both READMEs say 11.

Comment thread README.md Outdated
| Operations | Yes/no troubleshooting tree, metrics worth an alarm |
| Pricing | Monthly estimate from list prices, flat-rate break-even |
| Patterns | Seven questions to a topology, anti-patterns |
| Quiz | Ten myth-or-fact cards on the most common misconceptions |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Ten myth-or-fact cards" doesn't match the code: src/features/direct-connect/content/myths.ts defines 11. README.ja.md:53 ("10 問") has the same problem.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. The lead now uses MYTHS.length, and both READMEs say 11.

@claude

claude Bot commented Nov 8, 2026

Copy link
Copy Markdown

Reviewed the diff against the README, the freshness workflow and the DX price list. The workflow changes keep least-privilege permissions and the issue body is a quoted heredoc. I re-added the worked examples in docs/direct-connect/10-pricing.md and they are correct. The break-even figure is also correct.

One finding, posted inline: the quiz copy says ten myth-or-fact cards (Myths.tsx, README.md:53, README.ja.md:53), but content/myths.ts has 11.

Not verified: I did not fetch AWS sources, so the 2026 prices, the flat-rate tier figures and the timeline dates are internally consistent but unchecked against the live pages.

Contrast of tinted chips and inactive steps, the DX plate in dark mode,
label-in-name for the SVG buttons, a name for the bandwidth select,
focusable scroll regions, and the lab status sign drawn as HTML.
@claude

claude Bot commented Nov 8, 2026

Copy link
Copy Markdown

Review of the Direct Connect deep dive (87 files). I read the README, the CI workflows, the timeline and pricing data, and the claims in Vifs, Security, Resiliency and Myths. I did not verify every price or section line by line.

One finding, inline on src/features/direct-connect/sections/Vifs.tsx:30. The VIF limit reads "51 VIFs: 50 private/public plus up to 4 transit", which sums to 54. The same wording appears in docs/direct-connect/02-connections.md and 11-design-patterns.md. Check it against the AWS quotas page and fix the EN text, the JA text and the docs together.

The timeline dates and the EN/JA pairs I read were consistent. The 400G prices, the 2026 launch dates and the flat-rate figures in src/data/dxPricing.ts read as sourced from the docs, but I could not check them independently.

params: { en: "Parameters you choose", ja: "作成時に決めるパラメータ" },
limitsTitle: { en: "Per-connection limits", ja: "接続あたりの上限" },
limits: {
en: "A dedicated connection or LAG takes up to 51 VIFs: 50 private/public plus up to 4 transit. A hosted connection takes exactly one. Routes you advertise on a private or transit VIF are capped at 100 per address family by default (up to 1,000 with inbound prefix controls since 2026-08); above the limit the BGP session goes Idle. Public VIFs accept 1,000.",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The numbers don't add up: "51 VIFs: 50 private/public plus up to 4 transit" is 54, not 51. The same sentence is copied from docs/direct-connect/02-connections.md:9 and 11-design-patterns.md:150. Check the AWS quotas page and state the real split, probably 50 private/public plus 1 transit in the 51 total, or a 54 total if the 4 transit VIFs sit outside the 50. Fix the EN and JA text (line 31) and the docs together. The ceiling and the transit count are what readers will use when they size a design.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. The AWS quotas page says the 4 transit VIFs count against the 51, so the text now reads "up to 51 in total: at most 50 private or public and at most 4 transit". Same fix in EN, JA, docs/direct-connect/02-connections.md and 11-design-patterns.md.

<T
c={{
en: "A connection is a road; VIFs are lanes painted on it. Each lane has its own number (a VLAN ID), its own conversation with AWS (a BGP session), and goes to one kind of place. Adding a lane costs nothing, but a road only has room for 51.",
ja: "接続は道路、VIF はその上に引いた車線。車線ごとに番号 (VLAN ID) があって、AWS との会話 (BGP セッション) も別々、行き先の種類も 1 つずつ。車線を増やすのは無料だけど、1 本の道路に引けるのは 51 本まで。",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two issues. (1) Register: 「無料だけど」「51 本まで。」 are conversational. The brief asks for plain technical prose, and the same pattern recurs in Gateway.tsx:685 (じゃなくて / けど), WhyHard.tsx:50 (だよ), Overview.tsx:758 (来てね / 担当だよ) and Connections.tsx:35,374 (だよ / じゃないよ). Please rewrite these in 〜です・ます or 〜だ調 consistently. (2) Parity: the EN says "Adding a lane costs nothing", but a SiteLink-enabled VIF is billed $0.50 per VIF-hour (docs/direct-connect/10-pricing.md). Both languages should say that VIFs have no AWS charge of their own, or drop the claim.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed both. The asides were written for a mascot voice that this page no longer has, so every Japanese aside is now です・ます (Resiliency, LagMacsec, Connections x3, Vifs, Overview, Operations, Security, Gateway, WhyHard, Pricing, and the quiz prompt). The VIF line now says a VIF has no AWS charge of its own, with SiteLink as the exception, in EN and JA.

Comment thread src/data/dxPricing.ts

export const DX_GEOS = ["us", "europe", "japan", "apac", "australia"] as const;
export type DxGeo = (typeof DX_GEOS)[number];

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The flat-rate comment states the 2026-09-15 launch date and the tier prices as fact, but nothing in the file cites a source URL. The same is true of the 400G dedicated $85/hr and the DTO matrix. The prose says "verified 2026-10-12", yet AS_OF is 2026-10-10, so the two pages disagree about when the shared numbers were last checked. Please link the exact AWS pricing and flat-rate page for each block, or confirm the 100G/400G rows against the Price List API. As written they read as recalled.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added the source URL for each block (pay-as-you-go pricing page, flat-rate page and Pricing Guide, the flat-rate What's New post, and the Price List API cross-check for the Japan columns). On the dates: DX prices are dated DX_AS_OF (2026-10-12); the map's AS_OF (2026-10-10) covers its non-DX prices. The Japan DX values were identical in both reads, which is why the cost lab could switch to this file without changing a number (cost.test.ts pins that).

@claude

claude Bot commented Nov 8, 2026

Copy link
Copy Markdown

Two findings, both inline.

  • Japanese register: several JA strings in the new page are conversational (だよ / じゃなくて / けど / 来てね), not plain technical prose. Examples are Vifs.tsx:451, Gateway.tsx:685, WhyHard.tsx:50, Overview.tsx:758 and Connections.tsx:35,374.
  • Claims that outrun the facts:
    • Vifs.tsx:451: "Adding a lane costs nothing" conflicts with the SiteLink $0.50 per VIF-hour charge in the pricing doc.
    • dxPricing.ts:52: the flat-rate and 400G prices carry no cited source, and DX_AS_OF (2026-10-12) differs from AS_OF (2026-10-10).

I could not confirm the 2026-09-15 flat-rate launch, the tier prices or the 400G port price from the repo alone. I checked the VIF quota (50+4 within 51), the monthly price arithmetic and the flat-rate port-pair halves. They are consistent across the docs and the code.


const C = {
kicker: { en: "Quick check", ja: "腕だめし" },
title: { en: "Myth or fact?", ja: "ほんと? うそ?" },

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Japanese here is colloquial: 「ほんと? うそ?」, 「ほんと」/「うそ」 on lines 14–15, and 「ほんと」か「うそ」を選んでください on line 20. The project asks for plain technical prose. The road map's own quiz in src/features/quiz/QuizSection.tsx:10-22 uses 誤解 / 事実 / 「誤解か、事実か」 for the same "Myth or fact?" idea. Use those terms so the two pages agree. The same wording is in README.ja.md:53.

@claude

claude Bot commented Nov 8, 2026

Copy link
Copy Markdown

Reviewed against the README, docs and freshness workflow. The workflow change is fine, with no permission or pinning issues. The Direct Connect quotas, MTUs, 7224 communities and prefix numbers match the AWS docs as I know them. I did not check the 2026 launches, prices or the 11-card quiz count against AWS, so those are unverified.

One finding, posted inline: the Japanese for the deep-dive quiz is colloquial (ほんと/うそ) and does not match the existing quiz's 誤解/事実 wording. It appears in Myths.tsx and README.ja.md:53.

Minor: docs/04-direct-connect.md still says it was verified on 2026-10-10, but the shared DX price list it now points to is dated 2026-10-12 (DX_AS_OF).

@kanywst
kanywst merged commit 659bd83 into main Nov 8, 2026
17 checks passed
@kanywst
kanywst deleted the feat/direct-connect-deep-dive branch November 8, 2026 02:51
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