swup/swup
Versatile and extensible page transition library for server-rendered websites 🎉 observed · 2026-08-28
Health v2 · maintenance only
90/100
- Activity 97
- Release rhythm 76
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: 52.5
- age_days: 3250
- days_rel: 82
- days_push: 19
- n_releases_24m: 7
Adoption not part of the score
5220 stars · 199 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
Swup is a versatile and extensible page transition library for server-rendered websites, written in TypeScript. It intercepts link clicks, loads pages in the background, and smoothly animates between old and new content while managing caching, preloading, browser history, scroll position, and accessibility.
Use cases
- add smooth page transitions to a server-rendered website
- make a multi-page site feel like a single-page app
- animate between pages using CSS transitions or the View Transitions API
- cache and preload pages to speed up navigation
- preserve browser history and scroll position during animated navigation
- replace only content containers instead of full page reloads
- animate form submissions or build infinite scroll with transitions
When to choose
- you have a server-rendered (MPA) site and want SPA-like transitions without a full framework
- you want minimal markup and automatic CSS animation timing detection
- you need a small, modular core with a rich plugin and theme ecosystem
- you want native browser history, caching, and preloading out of the box
When to avoid
- you are building a full SPA with React, Vue, or similar — their built-in routers handle transitions
- you need server-side rendering or client-side state management rather than page-to-page transitions
- your site relies heavily on full-page scripts that re-execute on every load without adaptation
Facets
library · maturity stable
animation routing caching plugin-system middleware web-development frontend web-design browser page-transitions view-transitions server-rendered spa-feel typescript progressive-enhancement nodejs web-server
10 sources
- readme: https://github.com/swup/swup · fetched 2026-08-28 · 187d8704a11d
- homepage: https://swup.js.org · fetched 2026-08-29 · 921b243009a8
- site_page: https://swup.js.org/getting-started · fetched 2026-08-29 · ad9ae8be1688
- site_page: https://swup.js.org/getting-started/how-it-works · fetched 2026-08-29 · 8a45dbaf571c
- site_page: https://swup.js.org/getting-started/installation · fetched 2026-08-29 · 876c28045391
- site_page: https://swup.js.org/getting-started/example · fetched 2026-08-29 · b662358ff158
- site_page: https://swup.js.org/getting-started/animations · fetched 2026-08-29 · 2d86f4958705
- site_page: https://swup.js.org/getting-started/demos · fetched 2026-08-29 · 9336f90e8c0c
- site_page: https://swup.js.org/getting-started/showcase · fetched 2026-08-29 · e35fb67cb610
- site_page: https://swup.js.org/getting-started/videos · fetched 2026-08-29 · f33f5c66fc20
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| swup/swup | main | 90 |
For agents
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem