---
name: "up.framework"
area: "API"
kind: "module"
parent: "API reference"
url: "https://unpoly.com/api/up.framework"
---
<nav aria-label="Unpoly docs">[All docs](https://unpoly.com/index.md) · [API reference](https://unpoly.com/api.md)</nav>

# `up.framework`

Features to control when Unpoly boots.

By default Unpoly boots on `DOMContentLoaded`, after your own scripts have had a chance to configure it and register compilers. You rarely need this module. Boot manually with [`up.boot()`](https://unpoly.com/api/up.boot.md) only when you load Unpoly with `<script async>`, or when you set [`[up-boot=manual]`](https://unpoly.com/api/up-boot-manual.md) on the `<html>` element and boot later yourself. [`up.framework.isSupported()`](https://unpoly.com/api/up.framework.isSupported.md) returns whether Unpoly can boot in the current browser. On an unsupported browser Unpoly stays inactive, leaving a server-side web application without JavaScript enhancements.

---

## Features {#features}

- ### [up.boot()](https://unpoly.com/api/up.boot.md) (JavaScript function) (experimental)

  Manually boots the Unpoly framework.

- ### [[up-boot=manual]](https://unpoly.com/api/up-boot-manual.md) (HTML attribute) (experimental)

  Prevent Unpoly from booting automatically.

- ### [.up-booted](https://unpoly.com/api/up-booted.md) (CSS class) (experimental)

  This class is set on the `<html>` element after Unpoly has booted.

- ### [up.framework.booted](https://unpoly.com/api/up.framework.booted.md) (JavaScript property) (experimental)

  Whether Unpoly has finished booting.

- ### [up:framework:booted](https://unpoly.com/api/up:framework:booted.md) (DOM event) (experimental)

  This event is emitted after Unpoly has booted.

- ### [up.framework.isSupported()](https://unpoly.com/api/up.framework.isSupported.md) (JavaScript function)

  Returns whether Unpoly can boot in the current browser.

