# tonsky/rum

Simple, decomplected, isomorphic HTML UI library for Clojure and ClojureScript

Repository: https://github.com/tonsky/rum
Canonical: https://ross.abutalabs.com/products/rum
Language: HTML
License: EPL-1.0
License Family: copyleft
Last push: 2025-04-14T15:10:29+00:00

## Health v2 (maintenance only)
Score: 30/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 16, release rhythm 8, longevity 100
- inputs: {"age_days": 4275, "days_push": 506, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1827, forks 127 (observed 2026-08-28T04:05:41.492230+00:00)

## What it is
Rum is a simple, decomplected, isomorphic HTML UI library for Clojure and ClojureScript. On the client it works as a thin React wrapper, while on the server (JVM Clojure) it functions as a static HTML generator, supporting server-side rendering with no enforced state model.

## Use cases
- build a web UI in ClojureScript
- React wrapper for ClojureScript components
- generate static HTML from Clojure on the server
- server-side render the same components used client-side
- reactive UI components driven by atoms without a dictated state model
- lightweight alternative to Reagent or Om
- mix custom behaviors into components via mixins

## When to choose
- You want a minimal, React-based UI layer for ClojureScript without adopting an opinionated state management model
- You need isomorphic rendering - the same components producing HTML on the JVM server and hydrating in the browser
- You value a tiny (~900 line) codebase you can read end-to-end and extend through its stable internal API
- You want to combine it with other state libraries like DataScript, atoms, or plain JavaScript objects

## When to avoid
- You need a batteries-included framework with routing, state management, and build tooling bundled in
- You require active development and new features - the project is explicitly in support mode with no new development
- You are not working in Clojure or ClojureScript
- You expect framework-level guarantees or long-term multi-maintainer stewardship

## Facets
- artifact type: library
- maturity: maintenance
- function: frontend-framework, ui-components, ssr, templating
- domain: web-development, frontend
- platform: browser, jvm
- tags: clojure, clojurescript, react-wrapper, isomorphic, reactive, mixins, atoms, no-enforced-state-model, static-html-generation, support-mode, web-server

## Member repositories
- tonsky/rum (main) score 30

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:41.492230+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-30T03:19:32.711094+00:00, confidence not recorded.
  - readme: https://github.com/tonsky/rum (fetched 2026-08-28T04:05:41.492230+00:00, sha d46a8e0514d3)
- Data as of 2026-08-30T08:39:29.467469+00:00.
