---
title: "Unhead: Full Stack Head Manager · Unhead"
canonical_url: "https://unhead.unjs.io/docs/typescript/head/guides/get-started/intro-to-unhead"
last_updated: "2026-08-05T10:26:04.121Z"
meta:
  description: "Manage document head in SSR and CSR environments. Lazy DOM patching, TypeScript API, flat SEO meta, Schema.org support, and script loading."
  "og:description": "Manage document head in SSR and CSR environments. Lazy DOM patching, TypeScript API, flat SEO meta, Schema.org support, and script loading."
  "og:title": "Unhead: Full Stack Head Manager · Unhead"
---

Home

`
Unhead on GitHub

Switch to TypeScriptSwitch to VueSwitch to ReactSwitch to SvelteSwitch to Solid.jsSwitch to AngularSwitch to Nuxt

**Get Started**

# **Unhead: Full Stack Head Manager**

## What is a head manager?

Adding tags to `<head>` is a fundamental web-development task, whether you're setting a page title with `<title>` or loading JavaScript with a `<script>` tag.

While setting tags in an HTML document is simple, JavaScript frameworks have moved us away from pure HTML and 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 server-rendered and client-rendered environments.

The role of a head manager is to manage tags in `<head>`, attributes on `**<html>**` and `**<body>**`, and supported 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

Unhead was built as a universal head manager for JavaScript applications. It initially allowed frameworks such as Vue and Nuxt to offload head management to a standalone library.

Many frameworks implement their own head-management solutions, but supporting every way tags can be inserted into a document is difficult.

As a dedicated library, Unhead provides a head-management API, plugins, and integrations that can be shared across frameworks.

## What Unhead Provides

- **Lazy DOM patching:** A small DOM diffing engine updates only the tags that changed.
- **Typed API:** Tag and attribute types include inline MDN documentation.
- **Flat SEO metadata:** Manage more than 100 meta tags without nested objects using [`**useSeoMeta()**`](https://unhead.unjs.io/docs/head/api/composables/use-seo-meta).
- **Schema.org support:** Generate typed structured data with [`**useSchemaOrg()**`](https://unhead.unjs.io/docs/schema-org/api/composables/use-schema-org).
- **Script API:** Load third-party scripts with proxied APIs, triggers, and resource hints using [`**useScript()**`](https://unhead.unjs.io/docs/head/api/composables/use-script).
- **SSR and CSR:** Render on the server, then adopt and update those tags on the client.
- **Framework integrations:** Use Unhead with Vue, React, Svelte, Solid, Angular, or vanilla TypeScript.

## Install for 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)

For framework-independent behavior, start with these guides:

- [**~~Page Titles~~**](https://unhead.unjs.io/docs/head/guides/core-concepts/titles): Set titles and title templates
- [**~~Tag Positions~~**](https://unhead.unjs.io/docs/head/guides/core-concepts/positions): Control tag placement and ordering
- [**~~Loading Scripts~~**](https://unhead.unjs.io/docs/head/guides/core-concepts/loading-scripts): Manage script loading and APIs

[~~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) [**Single Page Applications** Ship useful fallback head tags from an SPA, then prerender public routes so crawlers receive route-specific metadata.](https://unhead.unjs.io/docs/head/guides/get-started/single-page-applications)

**On this page **

- [What is a head manager?](#what-is-a-head-manager)
- [Introducing Unhead](#introducing-unhead)
- [What Unhead Provides](#what-unhead-provides)
- [Install for Your Framework](#install-for-your-framework)