Skip to content

feat(web): swap Sentry for Heap + GA4 on cli.deepgram.com#76

Merged
lukeocodes merged 2 commits intomainfrom
feat/web-heap-ga4
May 9, 2026
Merged

feat(web): swap Sentry for Heap + GA4 on cli.deepgram.com#76
lukeocodes merged 2 commits intomainfrom
feat/web-heap-ga4

Conversation

@lukeocodes
Copy link
Copy Markdown
Member

Summary

The CLI binary keeps Sentry (errors + release health). The marketing site doesn't need error monitoring but does benefit from product analytics, so swap it out:

Surface Before After
cli.deepgram.com Sentry (@sentry/astro) Heap + Google Analytics 4
dg (Python binary) Sentry Sentry (unchanged)

What landed

Removed:

  • @sentry/astro from web/package.json (14 transitive packages drop from the lock — package-lock.json shrinks by ~1900 lines)
  • Sentry integration block from web/astro.config.mjs
  • web/sentry.client.config.ts (deleted)

Added to web/src/pages/index.astro <head>:

  • Heap snippet pointing at cdn.us.heap-api.com with tracking ID 765739241
  • gtag.js for GA4 with measurement ID G-TYPC1TBCKT (*.deepgram.com property — account 266000242, property 372400484)

Verification

$ npm run build && grep -c 'G-TYPC1TBCKT' dist/index.html
2

$ grep -c '765739241' dist/index.html
1

$ grep -c 'sentry' dist/index.html
0

Build clean, both analytics scripts inlined into the rendered HTML, no Sentry artefacts left.

Loose end — SENTRY_AUTH_TOKEN is now unused on the web side

The previous source-map upload step in the web deploy workflows pulled SENTRY_AUTH_TOKEN from secrets. With Sentry gone from the web side that env var is dead weight. Safe to remove from Fly secrets / GitHub Actions secrets that scope to the web deploys, but leaving the workflow edits as a follow-up — I haven't traced every reference yet, and unused secrets cause no functional issues.

lukeocodes added 2 commits May 9, 2026 08:25
The CLI binary keeps Sentry — that's where errors and release-health
sessions need to flow. The marketing site doesn't benefit from error
monitoring, but it does benefit from product analytics, so:

  cli.deepgram.com  →  Heap (765739241)  +  Google Analytics 4
  dg (Python CLI)   →  Sentry (unchanged)

Removed:
- @sentry/astro npm dep (14 transitive packages drop out of the lock)
- @sentry/astro integration from web/astro.config.mjs
- web/sentry.client.config.ts (entire file)

Added to web/src/pages/index.astro <head>:
- Heap snippet (cdn.us.heap-api.com) with tracking ID 765739241
- gtag.js snippet for GA4

The GA4 measurement ID is currently a placeholder (G-XXXXXXXXXX). Drop
in the real one and I'll push.

Build and lockfile regenerated cleanly. SENTRY_AUTH_TOKEN env var (used
by the previous source-maps upload step in deploy-web workflows) is now
unused — safe to remove from Fly secrets and from any GH workflow that
sets it on the web deploy step. Leaving the workflow edits as a follow-
up since I haven't traced every reference yet.
@lukeocodes lukeocodes merged commit b12a55b into main May 9, 2026
38 checks passed
@lukeocodes lukeocodes deleted the feat/web-heap-ga4 branch May 9, 2026 09:00
@github-actions github-actions Bot mentioned this pull request May 9, 2026
lukeocodes pushed a commit that referenced this pull request May 9, 2026
🤖 I have created a release *beep* *boop*
---


<details><summary>0.2.24</summary>

## [0.2.24](v0.2.23...v0.2.24)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))
* **telemetry:** track per-command usage via Sentry tags
([490b37e](490b37e))
* **telemetry:** turn on full Sentry observability for the CLI
([cc2c208](cc2c208))
* **web:** swap Sentry for Heap + GA4 on cli.deepgram.com
([e736528](e736528))
* **web:** swap Sentry for Heap + GA4 on cli.deepgram.com
([#76](#76))
([b12a55b](b12a55b))
* **web:** wire real GA4 measurement ID G-TYPC1TBCKT
([a6468e4](a6468e4))


### Bug Fixes

* **telemetry:** explicitly start session after init
([8dd2843](8dd2843))
* **telemetry:** explicitly start session after init
([#74](#74))
([ad75efa](ad75efa))
* uniform 'any arg = non-interactive' rule across all commands
([#78](#78))
([6370f32](6370f32))
</details>

<details><summary>deepctl-core: 0.2.12</summary>

##
[0.2.12](deepctl-core-v0.2.11...deepctl-core-v0.2.12)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))
* **telemetry:** track per-command usage via Sentry tags
([490b37e](490b37e))


### Bug Fixes

* uniform 'any arg = non-interactive' rule across all commands
([#78](#78))
([6370f32](6370f32))
</details>

<details><summary>deepctl-shared-utils: 0.1.12</summary>

##
[0.1.12](deepctl-shared-utils-v0.1.11...deepctl-shared-utils-v0.1.12)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))
</details>

<details><summary>deepctl-telemetry: 0.0.4</summary>

##
[0.0.4](deepctl-telemetry-v0.0.3...deepctl-telemetry-v0.0.4)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))
* **telemetry:** turn on full Sentry observability for the CLI
([cc2c208](cc2c208))


### Bug Fixes

* **telemetry:** explicitly start session after init
([8dd2843](8dd2843))
* **telemetry:** explicitly start session after init
([#74](#74))
([ad75efa](ad75efa))
</details>

<details><summary>deepctl-cmd-login: 0.1.15</summary>

##
[0.1.15](deepctl-cmd-login-v0.1.14...deepctl-cmd-login-v0.1.15)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))


### Bug Fixes

* uniform 'any arg = non-interactive' rule across all commands
([#78](#78))
([6370f32](6370f32))
</details>

<details><summary>deepctl-cmd-debug-audio: 0.1.13</summary>

##
[0.1.13](deepctl-cmd-debug-audio-v0.1.12...deepctl-cmd-debug-audio-v0.1.13)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))
</details>

<details><summary>deepctl-cmd-debug-browser: 0.1.12</summary>

##
[0.1.12](deepctl-cmd-debug-browser-v0.1.11...deepctl-cmd-debug-browser-v0.1.12)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))


### Bug Fixes

* uniform 'any arg = non-interactive' rule across all commands
([#78](#78))
([6370f32](6370f32))
</details>

<details><summary>deepctl-cmd-debug-network: 0.1.12</summary>

##
[0.1.12](deepctl-cmd-debug-network-v0.1.11...deepctl-cmd-debug-network-v0.1.12)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))
</details>

<details><summary>deepctl-cmd-update: 0.2.5</summary>

##
[0.2.5](deepctl-cmd-update-v0.2.4...deepctl-cmd-update-v0.2.5)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))
</details>

<details><summary>deepctl-cmd-plugin: 0.1.12</summary>

##
[0.1.12](deepctl-cmd-plugin-v0.1.11...deepctl-cmd-plugin-v0.1.12)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))
</details>

<details><summary>deepctl-cmd-skills: 0.0.6</summary>

##
[0.0.6](deepctl-cmd-skills-v0.0.5...deepctl-cmd-skills-v0.0.6)
(2026-05-09)


### Bug Fixes

* uniform 'any arg = non-interactive' rule across all commands
([#78](#78))
([6370f32](6370f32))
</details>

<details><summary>deepctl-cmd-listen: 0.0.13</summary>

##
[0.0.13](deepctl-cmd-listen-v0.0.12...deepctl-cmd-listen-v0.0.13)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))
</details>

<details><summary>deepctl-cmd-completion: 0.0.3</summary>

##
[0.0.3](deepctl-cmd-completion-v0.0.2...deepctl-cmd-completion-v0.0.3)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))
</details>

<details><summary>deepctl-plugin-example: 0.1.12</summary>

##
[0.1.12](deepctl-plugin-example-v0.1.11...deepctl-plugin-example-v0.1.12)
(2026-05-09)


### Features

* **telemetry:** full Sentry observability + per-command usage tags
([#75](#75))
([0fe43d2](0fe43d2))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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