Repository Analysis

dubinc/dub

The modern link attribution platform. Loved by world-class marketing teams like Framer, Perplexity, Superhuman, Twilio, Buffer and more.

1.4 Likely human-written View on GitHub
1.4
Adjusted Score
1.4
Raw Score
100%
Time Factor
2026-05-30
Last Push
23,626
Stars
TypeScript
Language
483,719
Lines of Code
4029
Files
611
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 1MEDIUM 11LOW 599

Pattern Findings

611 matches across 7 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers538 hits · 544 pts
SeverityFileLineSnippet
LOWpackages/ui/src/tooltip-advanced-link-features.tsx31export function AdvancedLinkFeaturesTooltip() {
LOWpackages/ui/src/hooks/use-router-stuff.ts16export function consumePendingDashboardScrollTop(): number | null {
LOWpackages/utils/src/constants/pricing/trial-limits.ts45export function getTrialLimitFeaturePhrase(kind: TrialLimitResource): string {
LOWpackages/utils/src/constants/pricing/trial-limits.ts49export function getTrialLimitResourceForOverageBanner({
LOWpackages/utils/src/constants/pricing/trial-limits.ts66export function isWorkspaceBillingTrialActive(
LOWpackages/utils/src/constants/pricing/trial-limits.ts76export function getWorkspaceLimitsForStripeSubscriptionStatus({
LOW…s/utils/src/functions/is-click-on-interactive-child.ts3export function isClickOnInteractiveChild(e: MouseEvent) {
LOW…/email/src/templates/default-payout-method-changed.tsx17export default function DefaultPayoutMethodChanged({
LOW…s/email/src/templates/partner-application-rejected.tsx19export default function PartnerApplicationRejected({
LOW…email/src/templates/verify-email-for-account-merge.tsx19export default function VerifyEmailForAccountMerge({
LOW…s/email/src/templates/program-application-reminder.tsx17export default function ProgramApplicationReminder({
LOW…src/templates/network-partner-application-rejected.tsx17export default function NetworkPartnerApplicationRejected({
LOW…s/email/src/templates/pending-applications-summary.tsx20export default function PendingApplicationsSummary({
LOW…mail/src/templates/partner-payout-force-withdrawal.tsx18export default function PartnerPayoutForceWithdrawal({
LOW…s/email/src/templates/partner-paypal-payout-failed.tsx18export default function PartnerPaypalPayoutFailed({
LOW…s/email/src/templates/partner-application-approved.tsx20export default function PartnerApplicationApproved({
LOW…/src/templates/partner-payout-withdrawal-completed.tsx18export default function PartnerPayoutWithdrawalCompleted({
LOW…rc/templates/network-partner-application-submitted.tsx17export default function NetworkPartnerApplicationSubmitted({
LOW…mail/src/templates/unresolved-fraud-events-summary.tsx21export default function UnresolvedFraudEventsSummary({
LOW…s/email/src/templates/new-commission-alert-partner.tsx17export default function NewCommissionAlertPartner({
LOW…/src/templates/partner-payout-withdrawal-initiated.tsx18export default function PartnerPayoutWithdrawalInitiated({
LOW…src/templates/network-partner-application-approved.tsx17export default function NetworkPartnerApplicationApproved({
LOW…s/email/src/templates/partner-application-received.tsx17export default function PartnerApplicationReceived({
LOW…s/email/src/templates/folder-edit-access-requested.tsx17export default function FolderEditAccessRequested({
LOW…ail/src/templates/partner-payout-withdrawal-failed.tsx20export default function PartnerPayoutWithdrawalFailed({
LOW…email/src/templates/advanced-plan-downgrade-notice.tsx17export default function AdvancedPlanDowngradeNotice({
LOW…src/templates/partner-identity-verification-failed.tsx17export default function PartnerIdentityVerificationFailed({
LOW…ates/broadcasts/identity-verification-announcement.tsx17export default function IdentityVerificationAnnouncement({
LOW…plates/broadcasts/program-marketplace-announcement.tsx18export default function ProgramMarketplaceAnnouncement({
LOW…mplates/broadcasts/stablecoin-payouts-announcement.tsx18export default function StablecoinPayoutsAnnouncement({
LOW…s/web/ui/customers/customer-partner-earnings-table.tsx14export function CustomerPartnerEarningsTable({
LOWapps/web/ui/layout/sidebar/refer-button.tsx38function AffiliateProgramPopupWrapper({
LOWapps/web/ui/layout/sidebar/partner-program-dropdown.tsx142function PartnerDropdownPlaceholder() {
LOW…b/ui/layout/sidebar/use-program-applications-count.tsx5export function useProgramApplicationsCount({
LOWapps/web/ui/layout/sidebar/workspace-dropdown.tsx116function WorkspaceDropdownPlaceholder() {
LOW…submitted-leads/use-program-submitted-lead-filters.tsx17export function useProgramSubmittedLeadFilters(
LOW…/ui/submitted-leads/submitted-lead-contact-details.tsx24export function SubmittedLeadContactDetails({
LOW…/ui/submitted-leads/submitted-lead-partner-details.tsx10export function SubmittedLeadPartnerDetails({
LOW…/ui/submitted-leads/submitted-lead-status-dropdown.tsx17export function SubmittedLeadStatusDropdown({
LOWapps/web/ui/submitted-leads/submitted-lead-sheet.tsx26function SubmittedLeadSheetContent({
LOW…-leads/partner-profile-submitted-leads-empty-state.tsx71export function PartnerProfileSubmittedLeadsEmptyState() {
LOW…bmitted-leads/partner-profile-submitted-lead-sheet.tsx23function PartnerProfileSubmittedLeadSheetContent({
LOW…bmitted-leads/partner-profile-submitted-lead-sheet.tsx101export function PartnerProfileSubmittedLeadSheet({
LOWapps/web/ui/modals/update-workspace-user-role.tsx120export function useWorkspaceUserRoleModal({
LOWapps/web/ui/modals/bulk-reject-partners-modal.tsx125export function useBulkRejectPartnersModal({
LOWapps/web/ui/modals/plan-change-confirmation-modal.tsx72function PlanChangeConfirmationModal({
LOWapps/web/ui/modals/plan-change-confirmation-modal.tsx250export function usePlanChangeConfirmationModal({
LOWapps/web/ui/modals/invite-partner-user-modal.tsx170export function useInvitePartnerUserModal() {
LOWapps/web/ui/modals/application-settings-modal.tsx283export function useApplicationSettingsModal() {
LOWapps/web/ui/modals/import-firstpromoter-modal.tsx178export function useImportFirstPromoterModal() {
LOWapps/web/ui/modals/link-conversion-tracking-modal.tsx22function LinkConversionTrackingModal(props: LinkConversionTrackingModalProps) {
LOWapps/web/ui/modals/link-conversion-tracking-modal.tsx33function LinkConversionTrackingModalInner({
LOWapps/web/ui/modals/link-conversion-tracking-modal.tsx174export function useLinkConversionTrackingModal({
LOWapps/web/ui/modals/reactivate-partner-modal.tsx100export function useReactivatePartnerModal({
LOWapps/web/ui/modals/edit-submitted-lead-modal.tsx39function convertFormDataArrayToObject(
LOWapps/web/ui/modals/edit-submitted-lead-modal.tsx289export function useEditSubmittedLeadModal() {
LOWapps/web/ui/modals/edit-submitted-lead-modal.tsx292 function openEditSubmittedLeadModal(lead: SubmittedLeadProps) {
LOWapps/web/ui/modals/edit-submitted-lead-modal.tsx296 function closeEditSubmittedLeadModal() {
LOWapps/web/ui/modals/edit-submitted-lead-modal.tsx300 function EditSubmittedLeadModalWrapper() {
LOWapps/web/ui/modals/trial-limit-activate-modal.tsx26function TrialLimitActivateModalInner({
478 more matches not shown…
Verbosity Indicators27 hits · 45 pts
SeverityFileLineSnippet
LOW…s/web/app/(ee)/api/workflows/partner-approved/route.ts84 // Step 1: Create partner default links
LOW…s/web/app/(ee)/api/workflows/partner-approved/route.ts184 // Step 2: Auto-provision discount code if enabled
LOW…s/web/app/(ee)/api/workflows/partner-approved/route.ts201 // Step 3: Send email to partner application approved
LOW…s/web/app/(ee)/api/workflows/partner-approved/route.ts293 // Step 4: Send webhook to workspace
LOW…s/web/app/(ee)/api/workflows/partner-approved/route.ts335 // Step 5: Trigger draft bounty submission creation
LOW…s/web/app/(ee)/api/workflows/partner-approved/route.ts349 // Step 6: Execute Dub workflows using the “partnerEnrolled” trigger.
LOW…s/web/app/(ee)/api/workflows/partner-approved/route.ts367 // Step 7: Create referral commission if enabled
LOWapps/web/playwright/workspaces/auth.setup.ts16 // Step 1: Enter email and reveal password field
LOWapps/web/playwright/workspaces/auth.setup.ts20 // Step 2: Enter password and submit
LOWapps/web/playwright/workspaces/auth.setup.ts26 // Step 3: Verify email via OTP from MailHog
LOWapps/web/playwright/workspaces/auth.setup.ts37 // Step 4: Wait for redirect to onboarding after auto-submit
LOWapps/web/playwright/partners/auth.setup.ts16 // Step 1: Enter email and reveal password field
LOWapps/web/playwright/partners/auth.setup.ts20 // Step 2: Enter password and submit
LOWapps/web/playwright/partners/auth.setup.ts26 // Step 3: Verify email via OTP from MailHog
LOWapps/web/playwright/partners/auth.setup.ts37 // Step 4: Wait for redirect to onboarding after auto-submit
LOWapps/web/lib/auth/options.ts382 // If the user is not using SAML, we need to check if SAML is enforced for the email domain
LOWapps/web/lib/partners/create-partner-commission.ts153 // for lead and sale events, we need to check if this partner-customer combination was recorded already (for dedup
LOWapps/web/lib/partners/create-partner-commission.ts171 // for lead events, we need to check if the partner has already been issued a lead reward for this customer
LOWapps/web/lib/partners/create-partner-commission.ts183 // for sale rewards, we need to check if partner's reward was updated and different from the first commission'
LOWapps/web/lib/partners/create-partner-commission.ts215 // for sale rewards with a max duration, we need to check if the first commission is within the max duration
LOWapps/web/lib/actions/partners/merge-partner-accounts.ts65// Step 1: Send email verification tokens
LOWapps/web/lib/actions/partners/merge-partner-accounts.ts202// Step 2: Verify email verification tokens
LOWapps/web/lib/actions/partners/merge-partner-accounts.ts315// Step 3: Merge partner accounts
LOWapps/web/lib/actions/partners/create-program.ts200 // folder might be upserted, so we need to check if it was created
LOWapps/web/lib/api/sales/construct-reward-amount.ts16 // If there are modifiers, we need to check if they match the primary reward
LOWapps/web/lib/api/links/validate-partner-link-url.ts49 // else, for exact mode, we need to check if the path matches too
LOWapps/web/lib/tinybird/record-click.ts264 // if the link has webhooks enabled, we need to check if the workspace usage has exceeded the limit
Decorative Section Separators10 hits · 30 pts
SeverityFileLineSnippet
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx32// ─── Constants ────────────────────────────────────────────────────────────────
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx53// ─── Shared form body ─────────────────────────────────────────────────────────
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx338// ─── Segmented control ────────────────────────────────────────────────────────
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx403// ─── Color section ────────────────────────────────────────────────────────────
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx484// ─── Style icons ──────────────────────────────────────────────────────────────
MEDIUMapps/web/ui/modals/qr-code-design-fields.tsx656// ─── Download / Copy popovers ─────────────────────────────────────────────────
MEDIUMapps/web/lib/qr/index.tsx159// ─── SVG string helpers for download ─────────────────────────────────────────
MEDIUMapps/web/lib/qr/index.tsx242// ─── Canvas helpers for finder patterns ──────────────────────────────────────
MEDIUMapps/web/lib/qr/index.tsx313// ─── Public download helpers ──────────────────────────────────────────────────
MEDIUMapps/web/lib/qr/utils.tsx340// ─── SVG path helpers for compound finder-pattern shapes ─────────────────────
Fake / Example Data23 hits · 23 pts
SeverityFileLineSnippet
LOWpackages/email/src/templates/program-invite.tsx105 name = "John Doe",
LOWpackages/email/src/templates/notify-partner-reapply.tsx21 name: "John Doe",
LOWpackages/email/src/templates/bounty-new-submission.tsx27 name: "John Doe",
LOWpackages/email/src/templates/program-network-invite.tsx21 name = "John Doe",
LOWpackages/email/src/templates/new-lead-submitted.tsx26 company: "Acme Corp",
LOWpackages/email/src/templates/partner-group-changed.tsx27 name: "John Doe",
LOWpackages/email/src/templates/partner-reward-updated.tsx34 name: "John Doe",
LOW…s/email/src/templates/partner-application-approved.tsx27 name: "John Doe",
LOWpackages/email/src/templates/lead-status-updated.tsx18 name: "John Doe",
LOWpackages/email/src/templates/lead-status-updated.tsx28 company: "Acme Corp",
LOW…kages/email/src/templates/connected-paypal-account.tsx21 paypalEmail = "user@example.com",
LOW…s/email/src/templates/partner-application-received.tsx21 name: "John Doe",
LOWapps/web/ui/modals/add-customer-modal.tsx382 placeholder="John Doe"
LOWapps/web/ui/modals/edit-customer-modal.tsx90 placeholder="John Doe"
LOW…/[slug]/(ee)/program/partners/invite-partner-sheet.tsx352 placeholder="John Doe"
LOW…dub.co/(dashboard)/components/slack-support-invite.tsx72 placeholder="user@example.com"
LOW…dub.co/(dashboard)/components/reset-login-attempts.tsx51 placeholder="user@example.com"
LOWapps/web/guides/stripe-checkout.md16 email: "user@example.com",
LOWapps/web/guides/manual-track-lead.md17 customerName: "John Doe",
LOWapps/web/guides/manual-track-lead.md36 customerName: "John Doe",
LOWapps/web/guides/stripe-customers.md10 email: "user@example.com",
LOWapps/web/guides/stripe-customers.md33 email: "user@example.com",
LOWapps/web/lib/integrations/appsflyer/constants.ts48 description: "The partner's name (e.g. 'John Doe')",
Over-Commented Block9 hits · 9 pts
SeverityFileLineSnippet
LOW.github/workflows/deploy-embed-script.yml21 with:
LOWapps/web/ui/partners/eligibility-requirements.tsx81}
LOWapps/web/ui/partners/eligibility-requirements.tsx101// const next = domains.filter((_, i) => i !== index);
LOWapps/web/ui/partners/eligibility-requirements.tsx121// domain.trim().length > 0 && !isValidDomainPattern(domain);
LOWapps/web/ui/partners/eligibility-requirements.tsx141// if (e.key === "Enter") {
LOWapps/web/ui/partners/eligibility-requirements.tsx161// </div>
LOWapps/web/tests/tracks/track-click.test.ts161 expect(response.data).toStrictEqual({
LOWapps/web/tests/tracks/track-click.test.ts181 // },
LOWapps/web/lib/stripe/stripe-v2-client.ts81 // //
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippet
HIGHapps/web/guides/clerk.md13DUB_API_KEY=your_api_key
Slop Phrases3 hits · 4 pts
SeverityFileLineSnippet
LOW…ckages/email/src/templates/connect-payout-reminder.tsx59 Don't forget to connect your payout details
LOW…s/email/src/templates/trial/trial-3-days-remaining.tsx22 Don't forget to review your selected plan and billing details.
MEDIUMapps/web/scripts/dev/data.json206 "readme": "This is the official Make.com integration for Dub. Make.com lets you connect Dub with thousands of the