chore: tag e2b.dev links with UTM parameters - #330
Conversation
READMEs follow the org's existing utm_campaign=readme convention; package homepage fields use utm_source=pypi/npm so installs from registry pages attribute to their real source (takes effect on next publish). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a0ae39ea26
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| "packageManager": "pnpm@10.34.5", | ||
| "description": "E2B Code Interpreter - Stateful code execution", | ||
| "homepage": "https://e2b.dev", | ||
| "homepage": "https://e2b.dev/?utm_source=npm&utm_medium=referral&utm_campaign=package_homepage&utm_content=e2b-code-interpreter", |
There was a problem hiding this comment.
Tag links in the package READMEs
When users follow the E2B, signup, API-key, or documentation links rendered on npm or PyPI, those registries use js/README.md (included by js/package.json) and python/README.md (selected by readme = "README.md"), not the root README changed here. Both package READMEs still contain untagged links, so only clicks on the registry Homepage field and GitHub's root README gain attribution; update the package-specific README links with the appropriate npm/PyPI source parameters as well.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
LGTM — this is a low-risk documentation/config change (UTM parameters on e2b.dev links and package homepage fields), no functional code paths affected.
Extended reasoning...
Overview
This PR touches three files: the root README.md, js/package.json, and python/pyproject.toml. It appends UTM query parameters (utm_source, utm_medium, utm_campaign, utm_content) to existing e2b.dev links for marketing attribution purposes. No code logic, build config, or dependency versions are changed.
Security risks
None. UTM parameters are purely additive query string tracking params on outbound links to the project's own domain (e2b.dev). There is no injection, auth, or data-exposure surface here — these are static string edits to documentation and metadata fields.
Level of scrutiny
This warrants light scrutiny. It's a marketing/attribution chore with zero impact on runtime behavior, SDK functionality, or the build/publish pipeline (the homepage field is metadata only). The one finding from the bug hunt — that js/README.md and python/README.md (the READMEs actually rendered on the npm/PyPI package pages) were left untagged despite being the exact channels this PR's homepage changes target — is a completeness nit, not a correctness bug, and is already captured as an inline comment.
Other factors
No prior reviews exist on this PR. The change is self-contained, mechanical, and the linked URLs/parameters are correctly formed (valid query string syntax, no broken links). The nit doesn't block merge — the PR's core goal (tagging homepage/README links) is achieved for the files it touched.
| ---> | ||
| ## What is E2B? | ||
| [E2B](https://www.e2b.dev/) is an open-source infrastructure that allows you to run AI-generated code in secure isolated sandboxes in the cloud. To start and control sandboxes, use our [JavaScript SDK](https://www.npmjs.com/package/@e2b/code-interpreter) or [Python SDK](https://pypi.org/project/e2b_code_interpreter). | ||
| [E2B](https://e2b.dev/?utm_source=github&utm_medium=referral&utm_campaign=readme&utm_content=code-interpreter) is an open-source infrastructure that allows you to run AI-generated code in secure isolated sandboxes in the cloud. To start and control sandboxes, use our [JavaScript SDK](https://www.npmjs.com/package/@e2b/code-interpreter) or [Python SDK](https://pypi.org/project/e2b_code_interpreter). |
There was a problem hiding this comment.
🟡 The root README.md's e2b.dev links were tagged with UTM params, but js/README.md and python/README.md contain the identical set of e2b.dev links (sign-up, API key, docs) and were left untagged. These are the exact READMEs rendered on the npm and PyPI package pages (via js/package.json's files and python/pyproject.toml's readme), which is precisely where this PR's new homepage UTM tagging (utm_source=npm/pypi) is meant to drive attributed traffic from — so the click-throughs on those same pages still go unattributed.
Extended reasoning...
The bug: This PR adds UTM parameters to the e2b.dev links in the root README.md, and separately adds utm_source=npm/utm_source=pypi to the homepage field in js/package.json and python/pyproject.toml. However, js/README.md and python/README.md contain the same e2b.dev links (the "What is E2B?" link, the sign-up link, the API-key dashboard link, and the docs link) and none of them were updated with UTM parameters.
Why this matters for this specific PR: These two READMEs aren't just incidental duplicates — they are literally the content rendered on the package registry pages that the PR's own homepage-field changes target. js/package.json ships README.md via its files array (["dist", "README.md", "package.json"]), so js/README.md is what npm renders on the package's page. python/pyproject.toml sets readme = "README.md", so python/README.md is what PyPI renders on its project page. The PR's stated goal is "installs coming from registry pages attribute to their real source" — but a visitor who lands on the npm or PyPI page, reads the README there, and clicks "Sign up to E2B" or "Get your API key" will follow an untagged link. Only the homepage link itself (in the sidebar) is tagged; the actual body content isn't.
Why existing code doesn't already handle this: The PR clearly established the convention (utm_source=github&utm_medium=referral&utm_campaign=readme&utm_content=code-interpreter) for README links and applied it consistently to the root README, but the two package READMEs were apparently overlooked — likely because the diff only touched three files and the author didn't realize js/README.md/python/README.md are separate files from the root README (they are, in fact, near-identical copies used per-package).
Proof / concrete example:
- A developer searches for
e2b-code-interpreteron PyPI. - PyPI renders
python/README.mdas the project description. - The developer clicks "Sign up to E2B here" in that rendered README.
- That link has zero UTM parameters, so the click is not attributed to the PyPI README channel — even though the PR just added
utm_source=pypito thehomepagefield specifically to capture PyPI-driven traffic. - The same sequence applies on npm using
js/README.md.
Fix: Apply the same utm_source=github&utm_medium=referral&utm_campaign=readme&utm_content=code-interpreter-style tagging (or a utm_source=npm/utm_source=pypi variant, matching the per-registry granularity used in the homepage fields) to the equivalent e2b.dev links in js/README.md and python/README.md.
Severity: this is a documentation/attribution completeness gap, not a functional bug — nothing breaks if left as-is, it just leaves part of the PR's own stated goal (accurate attribution from npm/PyPI) unrealized. Marking as nit.
Review follow-up: js/README.md and python/README.md are what the registries render, so their links carry utm_source=npm/pypi to match the homepage fields. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Good catch — those two files are indeed what npm and PyPI render. Tagged all four e2b.dev links in each, with utm_source=npm / utm_source=pypi to match the per-registry granularity of the homepage fields. |
|
add changeset also pls |
Will do! |
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Changeset added — patch bump for @e2b/code-interpreter, which also gets the tagged homepage field onto the npm page with the release. |
READMEs follow the org's existing utm_campaign=readme convention. The package homepage fields get utm_source=pypi/npm so installs coming from registry pages attribute to their real source — that part takes effect on the next publish.
🤖 Generated with Claude Code