Skip to content

Add standalone Maple Local landing + docs site (apps/local-landing)#197

Closed
Makisuo wants to merge 4 commits into
mainfrom
claude/maple-local-landing-page-uueead
Closed

Add standalone Maple Local landing + docs site (apps/local-landing)#197
Makisuo wants to merge 4 commits into
mainfrom
claude/maple-local-landing-page-uueead

Conversation

@Makisuo

@Makisuo Makisuo commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

What

A new standalone Astro site (apps/local-landing) that markets Maple Local as an independent local OpenTelemetry tool on its own apex domain (maplelocal.dev), with full docs — separate from maple.dev, while cross-linking back to Maple Cloud.

New site

  • Landing page adapted from maple.dev's /local page (hero with streaming maple start banner, value props, loopback data-flow, live trace/logs/service-map showcases, CLI grid), plus two new sections: an honest comparison table (Jaeger all-in-one, SigNoz, otel-tui, Grafana LGTM) and an FAQ (offline mode, data locality, relation to Maple Cloud, Windows).
  • Full docs (9 pages) ported/expanded from docs/local-mode.md + the old Local Mode docs: Getting Started (install, quickstart), Sending Data (OTLP overview, Node.js, Python, Go), Reference (CLI), Operations (offline mode, data & storage, updating/uninstalling).
  • Docs system is the hand-rolled one from apps/landing with the SDK-selector dimension stripped (sidebar, mobile nav, prev/next, TOC, Fuse.js ⌘K search, search-index endpoint). No i18n, no blog.
  • Same amber/Geist branding (global.css copy, @maple/ui shared), serves /cli/install + /cli/uninstall like maple.dev.

Deploy wiring

  • packages/infra: MapleDomains.localLanding added; the prd/stg domain entries are commented out until the maplelocal.dev zone is live in Cloudflare — until then the worker deploys on workers.dev (same fallback as PR previews). Manual zone setup steps are in apps/local-landing/README.md.
  • apps/local-landing/alchemy.run.ts (Worker + Assets, same pattern as landing) registered in the root alchemy.run.ts; no CI workflow changes needed.

maple.dev hand-off

  • /local page CTAs now point at maplelocal.dev.
  • Old Local Mode docs marked draft: true (drops them from routes, sidebar, search index, and sitemap) and the "Local Mode" group removed from the docs nav.
  • Landing worker 301s /docs/local-mode and /docs/local-mode/cli-reference to the new site's equivalents.

Sequencing note: the 301 targets and /local CTAs point at maplelocal.dev, which isn't live yet. Buy the domain + add the zone (steps in apps/local-landing/README.md), then uncomment the two localLanding entries in packages/infra/src/cloudflare/stage.ts. Deploying apps/landing before that will make those two old doc URLs redirect to a dead domain.

Verification

  • bun run --cwd apps/local-landing build — 13 pages, sitemap, search index, 404, /cli/install all in dist/.
  • astro preview smoke test: /, /docs, quickstart, CLI reference, and search-index all 200.
  • apps/landing rebuilds clean: old local-mode pages gone from routes/search-index/sitemap, /local links to the new site.
  • bun turbo typecheck --filter=@maple/infra passes. (@maple/query-engine typecheck fails on the base branch for unrelated reasons — untouched here. astro check reports the same pre-existing @maple/ui resolution warnings as apps/landing; neither app runs it in CI.)

🤖 Generated with Claude Code

https://claude.ai/code/session_01MJHpLvAF4qFh7dktKm1i7C


Generated by Claude Code


Open in Devin Review

New Astro app marketing Maple Local as an independent local OpenTelemetry
tool on its own apex domain (maplelocal.dev), with full docs (install,
quickstart, sending data for Node/Python/Go, CLI reference, offline mode,
data & storage, updating). Reuses the maple.dev branding and the local/live
showcase components; adds a comparison table vs other local OTel setups and
an FAQ.

Deploy wiring: new local-landing worker (Worker + Assets, same pattern as
apps/landing) registered in the root alchemy run; MapleDomains gains
localLanding, commented out until the maplelocal.dev zone is live (worker
falls back to workers.dev until then — see apps/local-landing/README.md).

maple.dev hand-off: /local CTAs now point at maplelocal.dev, the old Local
Mode docs are drafted out of routes/search/sitemap, and the landing worker
301s /docs/local-mode{,/cli-reference} to the new site.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MJHpLvAF4qFh7dktKm1i7C

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 1 additional finding.

Open in Devin Review

pullfrog[bot]

This comment was marked as resolved.

Mirror the apps/landing convention (ignoreWorkspaces) for the new Astro app,
delete the unused LocalFlow/LocalHero component copies, prune unused deps
(clsx, class-variance-authority, tailwind-merge), and fix a stale .gitignore
comment flagged in review.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MJHpLvAF4qFh7dktKm1i7C

Makisuo commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator Author

Addressed the review in 799a755: fixed the stale .gitignore comment (sync:installsync:cli) and the Knip CI failure (workspace ignored like apps/landing, unused component copies and deps removed).

On the installer-URL question: keeping https://maple.dev/cli/install in the docs is deliberate for now — it's the only live host until the maplelocal.dev zone exists, and it's the canonical URL baked into the internal docs and README. The new site already self-hosts /cli/install via sync:cli, so switching the docs to maplelocal.dev/cli/install is a one-line follow-up once the zone is live (same gate as un-commenting the localLanding domains in packages/infra).


Generated by Claude Code

devin-ai-integration[bot]

This comment was marked as resolved.

The health-dot class picked svc-map-health--info for both non-warn branches,
so sub-1% error rates were indistinguishable from 0%. Map the three existing
classes to real tiers (>1 error, >0.3 warn, else info) in both the new site's
copy and the apps/landing original it was copied from.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MJHpLvAF4qFh7dktKm1i7C

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ℹ️ No critical issues — one minor cleanup nit in the body.

Reviewed changes — the two commits since the prior pullfrog review (a338b32): a knip-CI fix that prunes dead code from the new apps/local-landing app, and a fix to the service-map health-dot color tiers.

  • knip CI fix (799a755) — added apps/local-landing to knip.json ignoreWorkspaces (mirroring apps/landing), deleted the unused component copies LocalFlow.astro and LocalHero.astro, pruned unused deps clsx / class-variance-authority / tailwind-merge from package.json and bun.lock, and fixed the stale .gitignore comment (sync:installsync:cli) flagged in the prior review.
  • service-map health tiers (3842dfe) — replaced a dead ternary branch in LiveServiceMap.astro (both apps/local-landing and apps/landing) where --error was never emitted and two branches both returned --info; now errNum > 1 → --error, > 0.3 → --warn, else --info.

Both commits are correct and well-scoped. The pruned deps are removed consistently from package.json and bun.lock; the deleted LocalFlow/LocalHero copies have no remaining imports; all three svc-map-health--* classes exist in global.css; and the new thresholds map sensibly onto the mock service data (pricing err=2.4 → error, payments err=0.5 → warn). The prior review's .gitignore inline nit is resolved.

ℹ️ Stale doc-comments reference the components deleted in 799a755

Deleting LocalFlow.astro and LocalHero.astro left two sibling files describing them as still present. The comments read as "a page-only elevation of the docs-tuned LocalFlow.astro (left untouched...)" and "distinct from the docs-tuned LocalHero.astro" — both now point at files that no longer exist. Purely cosmetic (no runtime impact), but a future reader following the reference will hit a dead end.

Technical details
# Stale doc-comments reference deleted components

## Affected sites
- `apps/local-landing/src/components/local/LocalLoopback.astro:5` — comment calls it "a page-only elevation of the docs-tuned `LocalFlow.astro` (left untouched...)"; `LocalFlow.astro` was deleted in `799a755`. (`LocalLoopback.astro:60` also mentions "LocalFlow" in a CSS comment.)
- `apps/local-landing/src/components/local/LocalProductHero.astro:5` — comment says "Distinct from the docs-tuned `LocalHero.astro`..."; `LocalHero.astro` was deleted in `799a755`.
- `apps/local-landing/src/components/local/InstallTabs.astro:8` — comment "Mirrors LocalHero's terminal frame + copy button" also references the deleted file.

## Required outcome
- Reword these comments so they no longer imply the deleted files still exist (e.g. drop the cross-reference or describe the pattern inline).

Pullfrog  | ⚠️ this action is pinned to a commit SHA, which freezes the cleanup step — switch to @v0 or keep the SHA fresh with Dependabot | Fix it ➔View workflow run | Using Claude Opus𝕏

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.

2 participants