Skip to content

feat(landing): make the homepage read as the upup npm file uploader in SERPs - #572

Merged
AminDhouib merged 1 commit into
devfrom
seo/homepage-brand-ctr
Oct 16, 2026
Merged

AminDhouib merged 1 commit into
devfrom
seo/homepage-brand-ctr

Conversation

@AminDhouib

Copy link
Copy Markdown
Member

Summary

Makes the homepage SERP result read as "upup, the open-source file uploader on npm (@useupup)" (GetItDone T-2411). Small metadata + JSON-LD change.

Why (GSC deep-analysis, sc-domain:useupup.com, 2026-09-15..10-12)

Query "upup" -> https://useupup.com/: 1085 impressions, 8 clicks, CTR 0.74%, avg position 5.8. Other brand-ish variants are tiny: "cloud upup" 10 impr (pos 5.7), "upup link" 10 (6.4), "upup.com" 7 (3.9), "upup.be" 3, "u pup"/"up up"/"up loader" 2 each; "upup" also earns 2 impr at pos 8 on /docs/comparisons/upup-vs-uppy/. No "useupup", "upup npm" or "upup react" impressions were reported in the window. (Bing basic MCP rejected the call, so no Bing numbers.)
Web search for "upup" returns: the UpUp offline-first JS library (TalAter), a Lviv software company on LinkedIn, an UpUp fitness app, and the UPUPUP Steam game. The snippet competes against those, so it has to say plainly: file uploader, open source, npm @useupup.

What changed

  • Title (app/page.tsx, lib/siteConfig.ts, and the OG/Twitter titles in app/layout.tsx): upup – Open-Source File Uploader for Every Framework (52) -> upup – Open-Source File Uploader | npm @useupup (47).
  • Description (app/page.tsx): upup is a free, open-source drag and drop file uploader with native UI for React, Vue, Svelte, Angular, Vanilla JS and Preact. MIT-licensed. (140) -> upup is a free, MIT-licensed file uploader on npm as @useupup. Drag and drop UI for React, Vue, Svelte, Angular, Vanilla JS and Preact, with S3 uploads. (152)
  • JSON-LD: the page-level SoftwareApplication node now carries alternateName: ['useupup', '@useupup', 'upup file uploader'], matching the Organization node. (Organization and WebSite already carried alternateName, sameAs to GitHub/npm/Discord, and a SoftwareSourceCode node, so nothing else was needed there.)
  • __tests__/seo-surfaces.test.ts: pins the new SoftwareApplication.alternateName.
  • Not touched: seo-copy-budgets.test.ts (open in Promote dev to master: landing motion/Escape/Ask AI fixes, SEO pages, retryUpload (Sentry replay stays at 10%) #561). It already pins the homepage title <= 60 and brand-first, and description 120-160; the new copy satisfies it.

Verification

  • Local: vitest run seo-copy-budgets seo-surfaces framework-pages -> exit 0, 3 files / 114 tests passed (run from an installed worktree checked out at this commit). Prettier --check clean on the touched files.
  • Local landing typecheck could not be used as a signal: the installed worktree has no built sibling dist/, so it fails with TS2307 @useupup/react|core in packages/interactive-example, none in the touched files. CI's Typecheck is the gate.
  • Disclosure: commit created with git plumbing and pushed via the GitHub git-data API (SHAs verified identical) since this worktree has no installed deps for the pre-commit hook. No --no-verify.

…n SERPs

Title now leads with the brand and names the npm scope, the description gives
the value plus @useupup, and the SoftwareApplication JSON-LD node carries the
same alternateName list as the Organization node (pinned in seo-surfaces).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@codesandbox

codesandbox Bot commented Oct 15, 2026

Copy link
Copy Markdown

Review or Edit in CodeSandbox

Open the branch in Web Editor • VS Code • Insiders

Open Preview

@AminDhouib
AminDhouib merged commit f56307f into dev Oct 16, 2026
18 checks passed
@AminDhouib
AminDhouib deleted the seo/homepage-brand-ctr branch October 16, 2026 00:45
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