From be9b4fc83cb3a71f61ed336c9b1e971fa9c42acb Mon Sep 17 00:00:00 2001 From: Jakob Holmgren Date: Fri, 9 Oct 2026 17:13:41 +0200 Subject: [PATCH] chore(Tracking): Remove the unused Capterra conversion pixel The Capterra pixel fired on organisation creation as a visible image, so browsers that block trackers showed broken-image icons on the page. Capterra tracking is no longer used, so the pixel, its image helper and the capterraKey project setting are removed. Co-Authored-By: Claude Opus 5.5 --- frontend/api/dev-routes.js | 1 - frontend/api/index.js | 1 - frontend/common/utils/utils.tsx | 5 ----- frontend/web/components/modals/CreateOrganisation.tsx | 7 ------- frontend/web/components/pages/CreateOrganisationPage.tsx | 6 ------ 5 files changed, 20 deletions(-) diff --git a/frontend/api/dev-routes.js b/frontend/api/dev-routes.js index 49a8a62f7af7..ed3d92b23b18 100644 --- a/frontend/api/dev-routes.js +++ b/frontend/api/dev-routes.js @@ -46,7 +46,6 @@ module.exports = function setupRoutes(app) { { name: 'amplitude', value: process.env.AMPLITUDE_API_KEY }, { name: 'reo', value: process.env.REO_API_KEY }, { name: 'delighted', value: process.env.DELIGHTED_API_KEY }, - { name: 'capterraKey', value: process.env.CAPTERRA_API_KEY }, { name: 'hideInviteLinks', value: envToBool('DISABLE_INVITE_LINKS', false) }, { name: 'linkedinPartnerTracking', value: envToBool('LINKEDIN_PARTNER_TRACKING', false) }, { name: 'albacross', value: process.env.ALBACROSS_CLIENT_ID }, diff --git a/frontend/api/index.js b/frontend/api/index.js index 8dea01e90ebc..a813afd89009 100755 --- a/frontend/api/index.js +++ b/frontend/api/index.js @@ -99,7 +99,6 @@ app.get('/config/project-overrides', (req, res) => { { name: 'amplitude', value: process.env.AMPLITUDE_API_KEY }, { name: 'reo', value: process.env.REO_API_KEY }, { name: 'delighted', value: process.env.DELIGHTED_API_KEY }, - { name: 'capterraKey', value: process.env.CAPTERRA_API_KEY }, { name: 'hideInviteLinks', value: envToBool('DISABLE_INVITE_LINKS', false), diff --git a/frontend/common/utils/utils.tsx b/frontend/common/utils/utils.tsx index a7718160284e..f4d1d58e5e2e 100644 --- a/frontend/common/utils/utils.tsx +++ b/frontend/common/utils/utils.tsx @@ -73,11 +73,6 @@ export const planNames = { import BaseUtils from './base/_utils' import { copyToClipboard } from './copyToClipboard' const Utils = Object.assign({}, BaseUtils, { - appendImage: (src: string) => { - const img = document.createElement('img') - img.src = src - document.body.appendChild(img) - }, calculateControl( multivariateOptions: MultivariateOption[], variations?: MultivariateFeatureStateValue[], diff --git a/frontend/web/components/modals/CreateOrganisation.tsx b/frontend/web/components/modals/CreateOrganisation.tsx index f625c87864f7..27d5b2adba70 100644 --- a/frontend/web/components/modals/CreateOrganisation.tsx +++ b/frontend/web/components/modals/CreateOrganisation.tsx @@ -5,7 +5,6 @@ import Button from 'components/base/forms/Button' import InputGroup from 'components/base/forms/InputGroup' import API from 'project/api' import { FC, useState } from 'react' -import Project from 'common/project' import { organisationService } from 'common/services/useOrganisation' import { getStore } from 'common/store' @@ -34,12 +33,6 @@ const CreateOrganisationModal: FC = () => {
{ e.preventDefault() - if (Project.capterraKey) { - const parts = Project.capterraKey.split(',') - Utils.appendImage( - `https://ct.capterra.com/capterra_tracker.gif?vid=${parts[0]}&vkey=${parts[1]}`, - ) - } createOrganisation(name) }} > diff --git a/frontend/web/components/pages/CreateOrganisationPage.tsx b/frontend/web/components/pages/CreateOrganisationPage.tsx index 22c3e8ae962c..72fcfba84f23 100644 --- a/frontend/web/components/pages/CreateOrganisationPage.tsx +++ b/frontend/web/components/pages/CreateOrganisationPage.tsx @@ -123,12 +123,6 @@ const CreateOrganisationPage: React.FC = () => { { e.preventDefault() - if (Project.capterraKey) { - const parts = Project.capterraKey.split(',') - Utils.appendImage( - `https://ct.capterra.com/capterra_tracker.gif?vid=${parts[0]}&vkey=${parts[1]}`, - ) - } AppActions.createOrganisation( name, getStoredOnboardingTargetingKey() ?? undefined,