# single-spa/single-spa

The router for easy microfrontends

Repository: https://github.com/single-spa/single-spa
Canonical: https://ross.abutalabs.com/products/single-spa
Homepage: https://single-spa.js.org/
Language: JavaScript
License: NOASSERTION
License Family: other
Topics: front-end, javascript, microservices, single-spa, single-page-applications, microfrontends, router
Last push: 2026-02-28T00:49:11+00:00

## Health v2 (maintenance only)
Score: 65/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 69, release rhythm 40, longevity 100
- inputs: {"age_days": 3998, "days_push": 187, "days_rel": 704, "gap_med": 16, "n_releases_24m": 2}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 13878, forks 926 (observed 2026-08-28T04:11:04.994149+00:00)

## What it is
single-spa is a JavaScript framework for building microfrontend architectures, acting as a top-level router that loads, mounts, and unmounts multiple applications on a single page. It lets teams combine apps written in different frameworks (React, Angular, Vue, etc.) with independent deployments and lazy loading.

## Use cases
- combine react and angular apps in one page without refresh
- migrate an existing spa to a new framework incrementally
- deploy frontend apps independently per team
- lazy load parts of a single-page application for faster initial load
- split a large frontend into independently developed microfrontends
- route between multiple frontend applications by url

## When to choose
- you have multiple teams needing independent frontend deployments
- you need to mix frameworks in one application
- you are incrementally migrating a legacy spa to a new stack
- you want lazy-loaded route-based code splitting across apps

## When to avoid
- you have a small app or single team where a monolithic spa is simpler
- you need server-side rendering as a primary requirement
- your team is unfamiliar with module federation or import maps
- you want an out-of-the-box full framework rather than a routing/orchestration layer

## Facets
- artifact type: framework
- maturity: stable
- function: routing, frontend-framework, middleware
- domain: web-development, frontend, microservices
- platform: browser
- tags: microfrontends, single-page-applications, spa, lazy-loading, frontend-architecture, javascript, nodejs

## Member repositories
- single-spa/single-spa (main) score 65

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:04.994149+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:12:58.592996+00:00, confidence not recorded.
  - readme: https://github.com/single-spa/single-spa (fetched 2026-08-28T04:11:04.994149+00:00, sha 569bebb0b34f)
  - homepage: https://single-spa.js.org/ (fetched 2026-08-29T08:07:26.440544+00:00, sha 2066756f3620)
  - site_page: https://single-spa.js.org/docs/faq (fetched 2026-08-29T08:07:26.449865+00:00, sha 3d7e8c1ab383)
  - site_page: https://single-spa.js.org/docs (fetched 2026-08-29T08:07:26.454696+00:00, sha 6cd93019e08b)
  - site_page: https://single-spa.js.org/docs/getting-started-overview (fetched 2026-08-29T08:07:26.456776+00:00, sha 0624b97f5dc4)
  - site_page: https://single-spa.js.org/docs/api (fetched 2026-08-29T08:07:26.458792+00:00, sha 362a5f1b2a13)
- Data as of 2026-08-30T08:39:29.467469+00:00.
