The modern link attribution platform. Loved by world-class marketing teams like Framer, Perplexity, Superhuman, Twilio, Buffer and more.
611 matches across 7 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | packages/ui/src/tooltip-advanced-link-features.tsx | 31 | export function AdvancedLinkFeaturesTooltip() { |
| LOW | packages/ui/src/hooks/use-router-stuff.ts | 16 | export function consumePendingDashboardScrollTop(): number | null { |
| LOW | packages/utils/src/constants/pricing/trial-limits.ts | 45 | export function getTrialLimitFeaturePhrase(kind: TrialLimitResource): string { |
| LOW | packages/utils/src/constants/pricing/trial-limits.ts | 49 | export function getTrialLimitResourceForOverageBanner({ |
| LOW | packages/utils/src/constants/pricing/trial-limits.ts | 66 | export function isWorkspaceBillingTrialActive( |
| LOW | packages/utils/src/constants/pricing/trial-limits.ts | 76 | export function getWorkspaceLimitsForStripeSubscriptionStatus({ |
| LOW | …s/utils/src/functions/is-click-on-interactive-child.ts | 3 | export function isClickOnInteractiveChild(e: MouseEvent) { |
| LOW | …/email/src/templates/default-payout-method-changed.tsx | 17 | export default function DefaultPayoutMethodChanged({ |
| LOW | …s/email/src/templates/partner-application-rejected.tsx | 19 | export default function PartnerApplicationRejected({ |
| LOW | …email/src/templates/verify-email-for-account-merge.tsx | 19 | export default function VerifyEmailForAccountMerge({ |
| LOW | …s/email/src/templates/program-application-reminder.tsx | 17 | export default function ProgramApplicationReminder({ |
| LOW | …src/templates/network-partner-application-rejected.tsx | 17 | export default function NetworkPartnerApplicationRejected({ |
| LOW | …s/email/src/templates/pending-applications-summary.tsx | 20 | export default function PendingApplicationsSummary({ |
| LOW | …mail/src/templates/partner-payout-force-withdrawal.tsx | 18 | export default function PartnerPayoutForceWithdrawal({ |
| LOW | …s/email/src/templates/partner-paypal-payout-failed.tsx | 18 | export default function PartnerPaypalPayoutFailed({ |
| LOW | …s/email/src/templates/partner-application-approved.tsx | 20 | export default function PartnerApplicationApproved({ |
| LOW | …/src/templates/partner-payout-withdrawal-completed.tsx | 18 | export default function PartnerPayoutWithdrawalCompleted({ |
| LOW | …rc/templates/network-partner-application-submitted.tsx | 17 | export default function NetworkPartnerApplicationSubmitted({ |
| LOW | …mail/src/templates/unresolved-fraud-events-summary.tsx | 21 | export default function UnresolvedFraudEventsSummary({ |
| LOW | …s/email/src/templates/new-commission-alert-partner.tsx | 17 | export default function NewCommissionAlertPartner({ |
| LOW | …/src/templates/partner-payout-withdrawal-initiated.tsx | 18 | export default function PartnerPayoutWithdrawalInitiated({ |
| LOW | …src/templates/network-partner-application-approved.tsx | 17 | export default function NetworkPartnerApplicationApproved({ |
| LOW | …s/email/src/templates/partner-application-received.tsx | 17 | export default function PartnerApplicationReceived({ |
| LOW | …s/email/src/templates/folder-edit-access-requested.tsx | 17 | export default function FolderEditAccessRequested({ |
| LOW | …ail/src/templates/partner-payout-withdrawal-failed.tsx | 20 | export default function PartnerPayoutWithdrawalFailed({ |
| LOW | …email/src/templates/advanced-plan-downgrade-notice.tsx | 17 | export default function AdvancedPlanDowngradeNotice({ |
| LOW | …src/templates/partner-identity-verification-failed.tsx | 17 | export default function PartnerIdentityVerificationFailed({ |
| LOW | …ates/broadcasts/identity-verification-announcement.tsx | 17 | export default function IdentityVerificationAnnouncement({ |
| LOW | …plates/broadcasts/program-marketplace-announcement.tsx | 18 | export default function ProgramMarketplaceAnnouncement({ |
| LOW | …mplates/broadcasts/stablecoin-payouts-announcement.tsx | 18 | export default function StablecoinPayoutsAnnouncement({ |
| LOW | …s/web/ui/customers/customer-partner-earnings-table.tsx | 14 | export function CustomerPartnerEarningsTable({ |
| LOW | apps/web/ui/layout/sidebar/refer-button.tsx | 38 | function AffiliateProgramPopupWrapper({ |
| LOW | apps/web/ui/layout/sidebar/partner-program-dropdown.tsx | 142 | function PartnerDropdownPlaceholder() { |
| LOW | …b/ui/layout/sidebar/use-program-applications-count.tsx | 5 | export function useProgramApplicationsCount({ |
| LOW | apps/web/ui/layout/sidebar/workspace-dropdown.tsx | 116 | function WorkspaceDropdownPlaceholder() { |
| LOW | …submitted-leads/use-program-submitted-lead-filters.tsx | 17 | export function useProgramSubmittedLeadFilters( |
| LOW | …/ui/submitted-leads/submitted-lead-contact-details.tsx | 24 | export function SubmittedLeadContactDetails({ |
| LOW | …/ui/submitted-leads/submitted-lead-partner-details.tsx | 10 | export function SubmittedLeadPartnerDetails({ |
| LOW | …/ui/submitted-leads/submitted-lead-status-dropdown.tsx | 17 | export function SubmittedLeadStatusDropdown({ |
| LOW | apps/web/ui/submitted-leads/submitted-lead-sheet.tsx | 26 | function SubmittedLeadSheetContent({ |
| LOW | …-leads/partner-profile-submitted-leads-empty-state.tsx | 71 | export function PartnerProfileSubmittedLeadsEmptyState() { |
| LOW | …bmitted-leads/partner-profile-submitted-lead-sheet.tsx | 23 | function PartnerProfileSubmittedLeadSheetContent({ |
| LOW | …bmitted-leads/partner-profile-submitted-lead-sheet.tsx | 101 | export function PartnerProfileSubmittedLeadSheet({ |
| LOW | apps/web/ui/modals/update-workspace-user-role.tsx | 120 | export function useWorkspaceUserRoleModal({ |
| LOW | apps/web/ui/modals/bulk-reject-partners-modal.tsx | 125 | export function useBulkRejectPartnersModal({ |
| LOW | apps/web/ui/modals/plan-change-confirmation-modal.tsx | 72 | function PlanChangeConfirmationModal({ |
| LOW | apps/web/ui/modals/plan-change-confirmation-modal.tsx | 250 | export function usePlanChangeConfirmationModal({ |
| LOW | apps/web/ui/modals/invite-partner-user-modal.tsx | 170 | export function useInvitePartnerUserModal() { |
| LOW | apps/web/ui/modals/application-settings-modal.tsx | 283 | export function useApplicationSettingsModal() { |
| LOW | apps/web/ui/modals/import-firstpromoter-modal.tsx | 178 | export function useImportFirstPromoterModal() { |
| LOW | apps/web/ui/modals/link-conversion-tracking-modal.tsx | 22 | function LinkConversionTrackingModal(props: LinkConversionTrackingModalProps) { |
| LOW | apps/web/ui/modals/link-conversion-tracking-modal.tsx | 33 | function LinkConversionTrackingModalInner({ |
| LOW | apps/web/ui/modals/link-conversion-tracking-modal.tsx | 174 | export function useLinkConversionTrackingModal({ |
| LOW | apps/web/ui/modals/reactivate-partner-modal.tsx | 100 | export function useReactivatePartnerModal({ |
| LOW | apps/web/ui/modals/edit-submitted-lead-modal.tsx | 39 | function convertFormDataArrayToObject( |
| LOW | apps/web/ui/modals/edit-submitted-lead-modal.tsx | 289 | export function useEditSubmittedLeadModal() { |
| LOW | apps/web/ui/modals/edit-submitted-lead-modal.tsx | 292 | function openEditSubmittedLeadModal(lead: SubmittedLeadProps) { |
| LOW | apps/web/ui/modals/edit-submitted-lead-modal.tsx | 296 | function closeEditSubmittedLeadModal() { |
| LOW | apps/web/ui/modals/edit-submitted-lead-modal.tsx | 300 | function EditSubmittedLeadModalWrapper() { |
| LOW | apps/web/ui/modals/trial-limit-activate-modal.tsx | 26 | function TrialLimitActivateModalInner({ |
| 478 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …s/web/app/(ee)/api/workflows/partner-approved/route.ts | 84 | // Step 1: Create partner default links |
| LOW | …s/web/app/(ee)/api/workflows/partner-approved/route.ts | 184 | // Step 2: Auto-provision discount code if enabled |
| LOW | …s/web/app/(ee)/api/workflows/partner-approved/route.ts | 201 | // Step 3: Send email to partner application approved |
| LOW | …s/web/app/(ee)/api/workflows/partner-approved/route.ts | 293 | // Step 4: Send webhook to workspace |
| LOW | …s/web/app/(ee)/api/workflows/partner-approved/route.ts | 335 | // Step 5: Trigger draft bounty submission creation |
| LOW | …s/web/app/(ee)/api/workflows/partner-approved/route.ts | 349 | // Step 6: Execute Dub workflows using the “partnerEnrolled” trigger. |
| LOW | …s/web/app/(ee)/api/workflows/partner-approved/route.ts | 367 | // Step 7: Create referral commission if enabled |
| LOW | apps/web/playwright/workspaces/auth.setup.ts | 16 | // Step 1: Enter email and reveal password field |
| LOW | apps/web/playwright/workspaces/auth.setup.ts | 20 | // Step 2: Enter password and submit |
| LOW | apps/web/playwright/workspaces/auth.setup.ts | 26 | // Step 3: Verify email via OTP from MailHog |
| LOW | apps/web/playwright/workspaces/auth.setup.ts | 37 | // Step 4: Wait for redirect to onboarding after auto-submit |
| LOW | apps/web/playwright/partners/auth.setup.ts | 16 | // Step 1: Enter email and reveal password field |
| LOW | apps/web/playwright/partners/auth.setup.ts | 20 | // Step 2: Enter password and submit |
| LOW | apps/web/playwright/partners/auth.setup.ts | 26 | // Step 3: Verify email via OTP from MailHog |
| LOW | apps/web/playwright/partners/auth.setup.ts | 37 | // Step 4: Wait for redirect to onboarding after auto-submit |
| LOW | apps/web/lib/auth/options.ts | 382 | // If the user is not using SAML, we need to check if SAML is enforced for the email domain |
| LOW | apps/web/lib/partners/create-partner-commission.ts | 153 | // for lead and sale events, we need to check if this partner-customer combination was recorded already (for dedup |
| LOW | apps/web/lib/partners/create-partner-commission.ts | 171 | // for lead events, we need to check if the partner has already been issued a lead reward for this customer |
| LOW | apps/web/lib/partners/create-partner-commission.ts | 183 | // for sale rewards, we need to check if partner's reward was updated and different from the first commission' |
| LOW | apps/web/lib/partners/create-partner-commission.ts | 215 | // for sale rewards with a max duration, we need to check if the first commission is within the max duration |
| LOW | apps/web/lib/actions/partners/merge-partner-accounts.ts | 65 | // Step 1: Send email verification tokens |
| LOW | apps/web/lib/actions/partners/merge-partner-accounts.ts | 202 | // Step 2: Verify email verification tokens |
| LOW | apps/web/lib/actions/partners/merge-partner-accounts.ts | 315 | // Step 3: Merge partner accounts |
| LOW | apps/web/lib/actions/partners/create-program.ts | 200 | // folder might be upserted, so we need to check if it was created |
| LOW | apps/web/lib/api/sales/construct-reward-amount.ts | 16 | // If there are modifiers, we need to check if they match the primary reward |
| LOW | apps/web/lib/api/links/validate-partner-link-url.ts | 49 | // else, for exact mode, we need to check if the path matches too |
| LOW | apps/web/lib/tinybird/record-click.ts | 264 | // if the link has webhooks enabled, we need to check if the workspace usage has exceeded the limit |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | apps/web/ui/modals/qr-code-design-fields.tsx | 32 | // ─── Constants ──────────────────────────────────────────────────────────────── |
| MEDIUM | apps/web/ui/modals/qr-code-design-fields.tsx | 53 | // ─── Shared form body ───────────────────────────────────────────────────────── |
| MEDIUM | apps/web/ui/modals/qr-code-design-fields.tsx | 338 | // ─── Segmented control ──────────────────────────────────────────────────────── |
| MEDIUM | apps/web/ui/modals/qr-code-design-fields.tsx | 403 | // ─── Color section ──────────────────────────────────────────────────────────── |
| MEDIUM | apps/web/ui/modals/qr-code-design-fields.tsx | 484 | // ─── Style icons ────────────────────────────────────────────────────────────── |
| MEDIUM | apps/web/ui/modals/qr-code-design-fields.tsx | 656 | // ─── Download / Copy popovers ───────────────────────────────────────────────── |
| MEDIUM | apps/web/lib/qr/index.tsx | 159 | // ─── SVG string helpers for download ───────────────────────────────────────── |
| MEDIUM | apps/web/lib/qr/index.tsx | 242 | // ─── Canvas helpers for finder patterns ────────────────────────────────────── |
| MEDIUM | apps/web/lib/qr/index.tsx | 313 | // ─── Public download helpers ────────────────────────────────────────────────── |
| MEDIUM | apps/web/lib/qr/utils.tsx | 340 | // ─── SVG path helpers for compound finder-pattern shapes ───────────────────── |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | packages/email/src/templates/program-invite.tsx | 105 | name = "John Doe", |
| LOW | packages/email/src/templates/notify-partner-reapply.tsx | 21 | name: "John Doe", |
| LOW | packages/email/src/templates/bounty-new-submission.tsx | 27 | name: "John Doe", |
| LOW | packages/email/src/templates/program-network-invite.tsx | 21 | name = "John Doe", |
| LOW | packages/email/src/templates/new-lead-submitted.tsx | 26 | company: "Acme Corp", |
| LOW | packages/email/src/templates/partner-group-changed.tsx | 27 | name: "John Doe", |
| LOW | packages/email/src/templates/partner-reward-updated.tsx | 34 | name: "John Doe", |
| LOW | …s/email/src/templates/partner-application-approved.tsx | 27 | name: "John Doe", |
| LOW | packages/email/src/templates/lead-status-updated.tsx | 18 | name: "John Doe", |
| LOW | packages/email/src/templates/lead-status-updated.tsx | 28 | company: "Acme Corp", |
| LOW | …kages/email/src/templates/connected-paypal-account.tsx | 21 | paypalEmail = "user@example.com", |
| LOW | …s/email/src/templates/partner-application-received.tsx | 21 | name: "John Doe", |
| LOW | apps/web/ui/modals/add-customer-modal.tsx | 382 | placeholder="John Doe" |
| LOW | apps/web/ui/modals/edit-customer-modal.tsx | 90 | placeholder="John Doe" |
| LOW | …/[slug]/(ee)/program/partners/invite-partner-sheet.tsx | 352 | placeholder="John Doe" |
| LOW | …dub.co/(dashboard)/components/slack-support-invite.tsx | 72 | placeholder="user@example.com" |
| LOW | …dub.co/(dashboard)/components/reset-login-attempts.tsx | 51 | placeholder="user@example.com" |
| LOW | apps/web/guides/stripe-checkout.md | 16 | email: "user@example.com", |
| LOW | apps/web/guides/manual-track-lead.md | 17 | customerName: "John Doe", |
| LOW | apps/web/guides/manual-track-lead.md | 36 | customerName: "John Doe", |
| LOW | apps/web/guides/stripe-customers.md | 10 | email: "user@example.com", |
| LOW | apps/web/guides/stripe-customers.md | 33 | email: "user@example.com", |
| LOW | apps/web/lib/integrations/appsflyer/constants.ts | 48 | description: "The partner's name (e.g. 'John Doe')", |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | .github/workflows/deploy-embed-script.yml | 21 | with: |
| LOW | apps/web/ui/partners/eligibility-requirements.tsx | 81 | } |
| LOW | apps/web/ui/partners/eligibility-requirements.tsx | 101 | // const next = domains.filter((_, i) => i !== index); |
| LOW | apps/web/ui/partners/eligibility-requirements.tsx | 121 | // domain.trim().length > 0 && !isValidDomainPattern(domain); |
| LOW | apps/web/ui/partners/eligibility-requirements.tsx | 141 | // if (e.key === "Enter") { |
| LOW | apps/web/ui/partners/eligibility-requirements.tsx | 161 | // </div> |
| LOW | apps/web/tests/tracks/track-click.test.ts | 161 | expect(response.data).toStrictEqual({ |
| LOW | apps/web/tests/tracks/track-click.test.ts | 181 | // }, |
| LOW | apps/web/lib/stripe/stripe-v2-client.ts | 81 | // // |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | apps/web/guides/clerk.md | 13 | DUB_API_KEY=your_api_key |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …ckages/email/src/templates/connect-payout-reminder.tsx | 59 | Don't forget to connect your payout details |
| LOW | …s/email/src/templates/trial/trial-3-days-remaining.tsx | 22 | Don't forget to review your selected plan and billing details. |
| MEDIUM | apps/web/scripts/dev/data.json | 206 | "readme": "This is the official Make.com integration for Dub. Make.com lets you connect Dub with thousands of the |