day8/re-frame
day8/re-frame has 5,546 GitHub stars and 708 forks. GitHot measured 0 stars in 24 hours and +1 in 7 days. Last checked 2026-11-05 20:09 UTC. Last push 2026-05-05.
A ClojureScript framework for building user interfaces, leveraging React
Measured star growth
- in 24h
- 0
- in 7 days
- +1
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalDerived Values, Flowing
This, milord, is my family's axe. We have owned it for almost nine hundred years, see. Of course, sometimes it needed a new blade. And sometimes it has required a new handle, new designs on the metalwork, a little refreshing of the ornamentation ... but is this not the nine hundred-year-old axe of my family? And because it has changed gently over time, it is still a pretty good axe, y'know. Pretty good.
-- Terry Pratchett, The Fifth Elephant
reflecting on identity, flow and derived values (aka The Ship of Theseus)
Overview
re-frame is a ClojureScript framework for building user interfaces. It has a data-oriented, functional design. Its primary focus is on high programmer productivity and scaling up to larger Single-Page applications.
Developed in late 2014, and released in 2015, it is mature and stable. It is used by both small startups and companies with over 500 developers, and it has delivered into production applications which are 40K lines of code and beyond.
Across the last 10 years, it has outlasted multiple generations of Javascript churn - just imagine your team's productivity if you didn't have to contend with technical churn, and have new magic burn your fingers every two years. Brand new, exciting concepts like recoiljs (in the React world), have been a regular part of re-frame from the beginning.
re-frame is lucky enough to enjoy an unfair advantage - ClojureScript is a Lisp. Alan Kay once described Lisp as "Maxwell's equations of software". Paul Graham described how Lisp was a competitive advantage for his startup. When we use Lisp, we get to leverage 50 years of foliated excellence from the very best minds available. And then there's also a thriving ClojureScript community which delivers modern ideas and best-in-class tooling.
Although re-frame leverages React (via Reagent), it only needs React to be the V in MVC, and no more. re-frame takes a different road to the currently-pervasive idea that Views should be causal (colocated queries, ComponentDidMount, hooks, etc). In re-frame, events are causal, and views are purely reactive.
Documentation
The re-frame documentation is available here.
Programmatic Diagnostics (1.4.6+)
The documentation includes a Debugging & Instrumentation guide for devtools and diagnostic code: source-meta macros, trace tag schema validation, per-dispatch epoch callbacks, dry-run dispatch with effect overrides, and subscription cache lookups.
Source-meta opt-in
re-frame.core is the stable function API — reg-event-db /
reg-event-fx / reg-event-ctx / reg-sub / reg-fx and the
dispatch / subscribe family are defns, so (map reg-event-db ...), (apply reg-sub ...), (partial reg-fx ...) work as
written.
For call-site {:file :line} metadata in dev / devtools, alias
re-frame.macros instead. Same call shape, source-meta captured at
expansion time and DCE'd in production CLJS:
;; function API — no source-meta
(:require [re-frame.core :as rf])
;; macro API — same call shape, source-meta captured
(:require [re-frame.macros :as rf])
The Current Version
For full dependency information, see the Clojars page
Getting Help
Licence
re-frame is MIT licenced
Explore related projects
freeCodeCamp/freeCodeCamp
freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.
458,611 starsdonnemartin/system-design-primer
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
376,978 starsreact/react
The library for web and native user interfaces.
252,020 starsvuejs/vue
This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
212,505 stars