GitHub - unpoly/unpoly: The missing application layer for HTML · GitHub
Skip to content
unpolyPublic

Repository files navigation

Sponsored by makandra Unpoly 3

jsDelivr hits (npm) NPM Downloads Dependency count

The missing application layer for HTML

Unpoly expands what links, forms and server-rendered pages can do, while your application stays on the server:

<a href="/tasks/123" up-target="#pane">Details</a>   <!-- updates a fragment -->
<a href="/users/new" up-layer="new">Add user</a>     <!-- opens in a modal overlay -->
<form up-validate>…</form>                           <!-- validates against your server -->
<main up-poll>…</main>                               <!-- keeps itself fresh -->

When the user follows an Unpoly link, the server responds with HTML (a full page is fine), and Unpoly updates only the targeted fragment. Everything outside the fragment stays as it is, including scroll positions and unsaved form input. Every URL keeps working on its own, so you don't need separate endpoints for fragments.

When attributes aren't enough, a JavaScript API and compilers let you recompose Unpoly's behavior and plug in your own code.

Unpoly works with any language or framework. It plays nice with existing code, and gracefully degrades without JavaScript.

This branch tracks the current major version, Unpoly 3.x.
If you're using Unpoly 2.x, use the 2.x-stable branch.
If you're using Unpoly 1.x or 0.x, use the 1.x-stable branch.

Getting started

Docs for coding agents

Install Unpoly's documentation as an agent skill:

npx skills add --global https://unpoly.com

See unpoly.com/learn/skill for more options.

Contributing

License

Unpoly is released under the MIT License.

Credits

Used by

Contributors

Languages