TanStack / TanStack/router

[Bug] Duplicate elements generated inside `<head>` tag in `vue-start`

Open
#6,764 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

start-head
Dominant language
TypeScript
Stars
15.1k
Forks
1.9k
Avg merge
1d 20h
Merged PRs (30d)
143

Description

Which project does this relate to?

Start

Describe the bug

In vue-start, the elements inside the tag (such as <title>, <meta>, and <link>) are being generated in duplicate.

Here is the rendered HTML showing the duplicated elements.

<head>
  <title>TanStack Start | Type-Safe, Client-First, Full-Stack Vue Framework</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="TanStack Start is a type-safe, client-first, full-stack Vue framework. ">
  <meta name="keywords">
  <meta name="twitter:title" content="TanStack Start | Type-Safe, Client-First, Full-Stack Vue Framework">
  <meta name="twitter:description" content="TanStack Start is a type-safe, client-first, full-stack Vue framework. ">
  <meta name="twitter:creator" content="@tannerlinsley">
  <meta name="twitter:site" content="@tannerlinsley">
  <meta name="og:type" content="website">
  <meta name="og:title" content="TanStack Start | Type-Safe, Client-First, Full-Stack Vue Framework">
  <meta name="og:description" content="TanStack Start is a type-safe, client-first, full-stack Vue framework. ">
  <link rel="stylesheet" href="/src/styles/app.css">
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
  <link rel="manifest" href="/site.webmanifest" color="#fffff">
  <link rel="icon" href="/favicon.ico">
  <title>TanStack Start | Type-Safe, Client-First, Full-Stack Vue Framework</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="TanStack Start is a type-safe, client-first, full-stack Vue framework. ">
  <meta name="keywords">
  <meta name="twitter:title" content="TanStack Start | Type-Safe, Client-First, Full-Stack Vue Framework">
  <meta name="twitter:description" content="TanStack Start is a type-safe, client-first, full-stack Vue framework. ">
  <meta name="twitter:creator" content="@tannerlinsley">
  <meta name="twitter:site" content="@tannerlinsley">
  <meta name="og:type" content="website">
  <meta name="og:title" content="TanStack Start | Type-Safe, Client-First, Full-Stack Vue Framework">
  <meta name="og:description" content="TanStack Start is a type-safe, client-first, full-stack Vue framework. ">
  <link rel="stylesheet" href="/src/styles/app.css">
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
  <link rel="manifest" href="/site.webmanifest" color="#fffff">
  <link rel="icon" href="/favicon.ico">
</head>
Your Example Website or App

https://stackblitz.com/~/github.com/jong-kyung/vue-start-duplicate-error

Steps to Reproduce the Bug or Issue
  1. Go to the reproduction link provided below.
  2. Open the browser's Developer Tools.
  3. Inspect the tag to see the duplicated elements.
Expected behavior

There should be no duplicated content generated inside the tag.

Screenshots or Videos
Image
Platform
  • Router / Start Version: 1.163.2
  • OS: macOS
  • Browser: Chrome
  • Browser Version: 145.0.7632.109
  • Bundler: vite
  • Bundler Version: 7.3.1
Additional context

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked StackBlitz reproduction and inspect the rendered in Chrome Developer Tools. Compare the generated output with the expected single set of title, meta, and link elements; done means those elements appear only once.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, vite
Domain
frontend, web-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.