Unhead: Full Stack Head Manager · Unhead

[Unhead Home](https://unhead.unjs.io/ "Home")

- [Docs](https://unhead.unjs.io/docs/react/head/guides/get-started/overview)
- [Tools](https://unhead.unjs.io/tools)
- [Learn](https://unhead.unjs.io/learn/guides/what-is-capo)

[Releases](https://unhead.unjs.io/releases)

Search…```k`` /`

[Unhead on GitHub](https://github.com/unjs/unhead)

[User Guides](https://unhead.unjs.io/docs/react/head/guides/get-started/overview)

[API](https://unhead.unjs.io/docs/react/head/api/get-started/overview)

[Releases](https://unhead.unjs.io/docs/react/releases/v3)

React

- [Switch to React](https://unhead.unjs.io/docs/react/head/guides/get-started/intro-to-unhead)
- [Switch to TypeScript](https://unhead.unjs.io/docs/typescript/head/guides/get-started/intro-to-unhead)
- [Switch to Vue](https://unhead.unjs.io/docs/vue/head/guides/get-started/intro-to-unhead)
- [Switch to Svelte](https://unhead.unjs.io/docs/svelte/head/guides/get-started/intro-to-unhead)
- [Switch to Solid.js](https://unhead.unjs.io/docs/solid-js/head/guides/get-started/intro-to-unhead)
- [Switch to Angular](https://unhead.unjs.io/docs/angular/head/guides/get-started/intro-to-unhead)
- [Switch to Nuxt](https://unhead.unjs.io/docs/nuxt/head/guides/get-started/intro-to-unhead)

v3 (stable)

Head

- [Discord Support](https://discord.com/invite/275MBUBvgP)
- [React Playground](https://stackblitz.com/edit/github-5hqsxyid)

- Get Started
  - [Overview](https://unhead.unjs.io/docs/react/head/guides/get-started/overview)
  - [Introduction to Unhead](https://unhead.unjs.io/docs/react/head/guides/get-started/intro-to-unhead)
  - [Starter Recipes](https://unhead.unjs.io/docs/react/head/guides/get-started/starter-recipes)
  - [Installation](https://unhead.unjs.io/docs/react/head/guides/get-started/installation)
  - [Upgrade Guide](https://unhead.unjs.io/docs/react/head/guides/get-started/migration)
  - [Migrate React Helmet](https://unhead.unjs.io/docs/react/head/guides/get-started/migrate-from-react-helmet)
- Core Concepts
  - [Titles & Title Templates](https://unhead.unjs.io/docs/react/head/guides/core-concepts/titles)
  - [Tag Sorting & Placement](https://unhead.unjs.io/docs/react/head/guides/core-concepts/positions)
  - [Class & Style Attributes](https://unhead.unjs.io/docs/react/head/guides/core-concepts/class-attr)
  - [Inline Style & Scripts](https://unhead.unjs.io/docs/react/head/guides/core-concepts/inner-content)
  - [Tag Deduplication](https://unhead.unjs.io/docs/react/head/guides/core-concepts/handling-duplicates)
  - [DOM Event Handling](https://unhead.unjs.io/docs/react/head/guides/core-concepts/dom-event-handling)
  - [Script Loading](https://unhead.unjs.io/docs/react/head/guides/core-concepts/loading-scripts)
  - [<Head> Component](https://unhead.unjs.io/docs/react/head/guides/core-concepts/components)
  - [Reactivity](https://unhead.unjs.io/docs/react/head/guides/core-concepts/reactivity)
  - [StreamingNew](https://unhead.unjs.io/docs/react/head/guides/core-concepts/streaming)
- Build Plugins
  - [Overview](https://unhead.unjs.io/docs/react/head/guides/build-plugins/overview)
  - [Tree-Shaking](https://unhead.unjs.io/docs/react/head/guides/build-plugins/tree-shaking)
  - [useSeoMeta Transform](https://unhead.unjs.io/docs/react/head/guides/build-plugins/seo-meta-transform)
  - [Minify Transform](https://unhead.unjs.io/docs/react/head/guides/build-plugins/minify-transform)
  - [Devtools](https://unhead.unjs.io/docs/react/head/guides/build-plugins/devtools)
- Plugins
  - [Template Params](https://unhead.unjs.io/docs/react/head/guides/plugins/template-params)
  - [Alias Sorting](https://unhead.unjs.io/docs/react/head/guides/plugins/alias-sorting)
  - [Canonical Plugin](https://unhead.unjs.io/docs/react/head/guides/plugins/canonical)
  - [Infer SEO Meta](https://unhead.unjs.io/docs/react/head/guides/plugins/infer-seo-meta-tags)
  - [Minify](https://unhead.unjs.io/docs/react/head/guides/plugins/minify)
  - [Validate](https://unhead.unjs.io/docs/react/head/guides/plugins/validate)

Get Started

# Unhead: Full Stack Head Manager

Last updated Jan 19, 2026 by [Harlan Wilton](https://github.com/harlan-zw) in [docs: sync](https://github.com/unjs/unhead/commit/d2f86454774aa60706628b46a850653e1e4d56d9).

On this page

- [What is head manager?](#what-is-head-manager)
- [Introducing Unhead](#introducing-unhead)
- [Innovating on Head Management](#innovating-on-head-management)
- [Next Steps](#next-steps)

## [What is head manager?](#what-is-head-manager)

Adding tags in your `<head>` is one of the fundamental tasks in web development. Whether it be setting a page title using `<title>` or loading in a JavaScript framework using `<script>` tags.

While setting tags in a HTML document is dead simple, JavaScript frameworks have moved us well away from the days of pure HTML into a world of fully dynamic client-side pages and server-side rendering.

Modern JavaScript applications need to render code outside the app entry (typically `<div id="app"></div>`) in both a server-rendered and client-rendered environment.

The role of the "head manager" is then to manage the tags in the `<head>` and all tags outside the app entry.

```
<!DOCTYPE html>
<html>  <!-- Unhead: htmlAttrs -->
  <head>
    <!-- Unhead: head -->
  </head>
  <body> <!-- Unhead: bodyAttrs -->
    <!-- Unhead: bodyOpen -->
    <div id="app"></div> <!-- Your app -->
    <!-- Unhead: bodyClose -->
  </body>
</html>
```

## [Introducing Unhead](#introducing-unhead)

Unhead was built as a universal head manager for JavaScript applications. Initially allowing frameworks such as Vue and Nuxt, to offload the complex work of managing the head to a standalone library.

While many frameworks themselves implement solutions for managing the above tags, it can be difficult to maintain for the diverse ways tags can be inserted into the document.

As Unhead is a dedicated library it can innovate on the head management developer experience, providing an ecosystem of plugins and integrations that can be used across all frameworks.

## [Innovating on Head Management](#innovating-on-head-management)

- **Lazy DOM Patching** - A tiny DOM diffing engine that only updates what changed, avoiding full page re-renders
- **Fully Typed API** - TypeScript-first with inline MDN documentation for every tag and attribute
- **Flat SEO Meta** - Manage 100+ meta tags without nested objects using [`useSeoMeta()`](https://unhead.unjs.io/docs/head/api/composables/use-seo-meta)
- **Schema.org Support** - Generate structured data with full TypeScript support via [`useSchemaOrg()`](https://unhead.unjs.io/docs/schema-org/api/composables/use-schema-org)
- **Script API** - Load third-party scripts with proxied APIs, triggers, and performance controls using [`useScript()`](https://unhead.unjs.io/docs/head/api/composables/use-script)
- **SSR + CSR** - First-class support for server-side rendering with seamless client hydration
- **Framework Agnostic** - Works with Vue, React, Svelte, Solid, Angular, or vanilla TypeScript

## [Next Steps](#next-steps)

Now that you understand what Unhead does, get started with your framework:

- [Vue Installation](https://unhead.unjs.io/docs/vue/head/guides/get-started/installation)
- [React Installation](https://unhead.unjs.io/docs/react/head/guides/get-started/installation)
- [Svelte Installation](https://unhead.unjs.io/docs/svelte/head/guides/get-started/installation)
- [Solid Installation](https://unhead.unjs.io/docs/solid-js/head/guides/get-started/installation)
- [Angular Installation](https://unhead.unjs.io/docs/angular/head/guides/get-started/installation)
- [TypeScript (Vanilla)](https://unhead.unjs.io/docs/typescript/head/guides/get-started/installation)

Or explore the core concepts:

- [Page Titles](https://unhead.unjs.io/docs/head/guides/core-concepts/titles) - Master title management
- [Tag Positions](https://unhead.unjs.io/docs/head/guides/core-concepts/positions) - Control tag ordering
- [Loading Scripts](https://unhead.unjs.io/docs/head/guides/core-concepts/loading-scripts) - Efficient script loading

[Edit this page](https://github.com/unjs/unhead/edit/main/docs/head/1.guides/0.get-started/2.intro-to-unhead.md)

[Markdown For LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/head/1.guides/0.get-started/2.intro-to-unhead.md)

Did this page help you?

[Overview Framework-agnostic library for managing HTML head tags. Titles, meta tags, scripts, and structured data with SSR support for Vue, React, Svelte, Solid, Angular.](https://unhead.unjs.io/docs/head/guides/get-started/overview) [Starter Recipes Copy-paste recipes for SEO setup, social sharing meta, favicon config, PWA tags, and blog post optimization. Ready-to-use Unhead patterns.](https://unhead.unjs.io/docs/head/guides/get-started/starter-recipes)

On this page

- [What is head manager?](#what-is-head-manager)
- [Introducing Unhead](#introducing-unhead)
- [Innovating on Head Management](#innovating-on-head-management)
- [Next Steps](#next-steps)

[GitHub](https://github.com/unjs/unhead) [ Discord](https://discord.com/invite/275MBUBvgP)

[ /llms.txt](https://unhead.unjs.io/llms.txt)

[Part of the UnJS ecosystem](https://unjs.io/)

### Head Management

- [Getting Started](https://unhead.unjs.io/docs/react/head/guides/get-started/overview)
- [useHead](https://unhead.unjs.io/docs/react/head/api/composables/use-head)
- [useSeoMeta](https://unhead.unjs.io/docs/react/head/api/composables/use-seo-meta)
- [useHeadSafe](https://unhead.unjs.io/docs/react/head/api/composables/use-head-safe)
- [useScript](https://unhead.unjs.io/docs/react/head/api/composables/use-script)

### Schema.org

- [Getting Started](https://unhead.unjs.io/docs/react/schema-org/guides/get-started/overview)
- [useSchemaOrg](https://unhead.unjs.io/docs/react/schema-org/api/composables/use-schema-org)
- [Nodes](https://unhead.unjs.io/docs/react/schema-org/guides/core-concepts/nodes)
- [Recipes](https://unhead.unjs.io/docs/react/schema-org/guides/recipes/identity)

### Guides

- [Titles](https://unhead.unjs.io/docs/react/head/guides/core-concepts/titles)
- [Streaming SSR](https://unhead.unjs.io/docs/react/head/guides/core-concepts/streaming)
- [DOM Events](https://unhead.unjs.io/docs/react/head/guides/core-concepts/dom-event-handling)
- [Plugins](https://unhead.unjs.io/docs/react/head/guides/plugins/template-params)

### Tools

- [Meta Tag Generator](https://unhead.unjs.io/tools/meta-tag-generator)
- [OG Image Generator](https://unhead.unjs.io/tools/og-image-generator)
- [Schema.org Generator](https://unhead.unjs.io/tools/schema-generator)
- [Capo.js Analyzer](https://unhead.unjs.io/tools/capo-analyzer)

### Articles

- [What is Capo.js?](https://unhead.unjs.io/learn/guides/what-is-capo)

### Research

- [State of <head> in 2026](https://unhead.unjs.io/learn/research/state-of-head-2026)
- [Streaming Head Performance](https://unhead.unjs.io/learn/research/streaming-head-performance)
- [Capo.js Performance Research](https://unhead.unjs.io/learn/research/capo-performance-research)

Copyright © 2025-2026 Harlan Wilton - [MIT License](https://github.com/unjs/unhead/blob/main/license)