feat(landing): honest /vs-* comparison pages (Grafana, Datadog, ClickHouse Cloud) by duyet · Pull Request #2247 · chmonitor/chmonitor · GitHub
Skip to content

feat(landing): honest /vs-* comparison pages (Grafana, Datadog, ClickHouse Cloud) - #2247

Merged
duyet merged 3 commits into
mainfrom
advisor/63-comparison-pages-vs-competitors
Jul 3, 2026
Merged

feat(landing): honest /vs-* comparison pages (Grafana, Datadog, ClickHouse Cloud)#2247
duyet merged 3 commits into
mainfrom
advisor/63-comparison-pages-vs-competitors

Conversation

@duyet

@duyet duyet commented Jul 3, 2026

Copy link
Copy Markdown
Member

Implements plan 63 — three comparison pages plus a reusable, data-driven ComparisonTable.astro.

What

  • ComparisonTable.astro — shared, data-driven table (reuses existing global .cmp-* CSS; no new styles).
  • /vs-grafana, /vs-datadog, /vs-clickhouse-cloud — each with hero, ≥10-row honest feature matrix, TCO section, dated/sourced disclaimer, reused <FinalCta />.
  • data/comparisons.ts — row data (12/12/11 rows).
  • Additive link-back from the homepage Comparison.astro.

Honesty guardrails

  • Every chmonitor claim verified against shipped apps/dashboard code (not just pricing capability flags): MCP server (/api/mcp), AI agent, query advisor (recommend-only, EXPLAIN-based impact), MV/projection designer, anomaly baselines, alert dedup/cooldown + 5-min fleet-wide sweep, outbound alert webhooks (Slack/Discord/Telegram/PagerDuty/generic — no email adapter, correctly omitted), version-aware SQL, self-host (Docker/Helm/Cloudflare Workers, GPL-3.0).
  • Each matrix includes 2–3 rows where the competitor legitimately wins — no strawmen (Grafana's plugin ecosystem/multi-datasource, Datadog's full-stack APM/on-call, ClickHouse Cloud's zero-ops hosting).
  • Alert history + inbound-event storage explicitly scoped to "needs a D1 binding" (no fallback on bare Docker/K8s) — precision fix made mid-implementation.
  • Competitor claims dated July 2026, each page links its primary source (grafana.com/pricing, Altinity plugin repo, Datadog pricing, ClickHouse Cloud pricing).

Verification

  • bun run check (Biome) clean across all commits.
  • cd apps/landing && bun run build — now verified locally (the earlier self-referential apps/landing/node_modules symlink was a stale artifact of the shared checkout, not the PR; a clean bun install resolves it). All 8 pages build, including the 3 new /vs-* routes.
  • The three CI failures (build, landing, unit-tests) are transient infra flakes — ENOENT: could not open the "node_modules" directory on bun install --frozen-lockfile, and an internal bun WriteFailed error on the dashboard's unrelated coverage run — not caused by this diff. Reran the failed jobs.

Co-Authored-By: duyetbot bot@duyet.net

duyet and others added 3 commits July 3, 2026 23:43
…ckHouse Cloud (plan 63)

Adds a reusable, data-driven ComparisonTable.astro plus three dedicated pages
(/vs-grafana, /vs-datadog, /vs-clickhouse-cloud), each with a >=10-row feature
matrix, a total-cost-of-ownership section, and a CTA. Every chmonitor row is
verified against shipped apps/dashboard code (not pricing-page entitlements);
every competitor row is dated/sourced to July 2026 public docs and includes
rows where the competitor legitimately wins (Grafana's visualization/plugin
ecosystem, Datadog's full-stack APM/on-call, ClickHouse Cloud's zero-ops
hosting) so nothing reads as a strawman.

Alert history and inbound-event persistence are D1-backed with no
self-hosted-Docker fallback (confirmed via alert-history-store.ts /
event-store.ts) — the alerting row calls that out explicitly rather than
implying it works identically on every self-host target.

Co-Authored-By: duyetbot <bot@duyet.net>
…matrix

Additive one-line footer under the on-page Comparison table pointing to the
deeper /vs-grafana, /vs-datadog and /vs-clickhouse-cloud pages (plan 63).

Co-Authored-By: duyetbot <bot@duyet.net>
…e too

event_log is D1-backed with the same self-hosted-Docker gap as alert_events
(event-store.ts) — the ingest pipeline still normalizes/re-emits everywhere,
but storage/retrieval needs the same D1 binding, so the alerting row caveat
now covers both instead of only alert history.

Co-Authored-By: duyetbot <bot@duyet.net>
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

@duyet
duyet enabled auto-merge (squash) July 3, 2026 17:00
@duyet
duyet merged commit e1bf253 into main Jul 3, 2026
31 of 42 checks passed
@duyet
duyet deleted the advisor/63-comparison-pages-vs-competitors branch July 3, 2026 17:00
@duyet
duyet restored the advisor/63-comparison-pages-vs-competitors branch July 6, 2026 11:43
@duyet
duyet deleted the advisor/63-comparison-pages-vs-competitors branch July 16, 2026 10: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.

1 participant