• Stars
    star
    5,374
  • Rank 7,309 (Top 0.2 %)
  • Language
    Clojure
  • License
    MIT License
  • Created over 9 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A ClojureScript framework for building user interfaces, leveraging React

re-frame logo

Derived 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 6 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.

The Current Version

Clojars Project

For full dependency information, see the Clojars page

Getting Help

Get help on Slack

Licence

re-frame is MIT licenced

More Repositories

1

re-com

A ClojureScript library of reusable components for Reagent
Clojure
788
star
2

re-frame-10x

A debugging dashboard for re-frame. X-ray vision as tooling.
Clojure
619
star
3

re-frame-template

A Leiningen template for creating a re-frame application (client only) with a shadow-cljs build.
Clojure
580
star
4

re-frame-http-fx

A re-frame "effects handler" for performing Ajax tasks (via cljs-ajax)
Clojure
257
star
5

re-frame-async-flow-fx

A re-frame effects handler for coordinating the kind of async control flow which often happens on app startup.
Clojure
185
star
6

re-frame-test

Cross platform (cljs and clj) utilities for testing re-frame applications
Clojure
109
star
7

re-frame-undo

An undo library for re-frame
Clojure
79
star
8

re-frame-debux

A fork of debux for tracing re-frame code (for eventual consumption by re-frame-10x)
Clojure
43
star
9

lein-git-inject

Leiningen middleware which computes the "version" at build-time - from the ambient git context (think latest tag).
Clojure
38
star
10

re-frame-http-fx-alpha

A ClojureScript client library for HTTP requests. Provides a re-frame "effect handler" keyed :http
Clojure
36
star
11

re-frame-forward-events-fx

A re-frame effects handler for listening-for and then post-processing dispatched events
Clojure
34
star
12

shadow-git-inject

A shadow-cljs build hook that computes the "version" at build-time - from the ambient git context (latest tag?).
Clojure
28
star
13

de-dupe

A ClojureScript library which "de-duplicates" Persistent Data Structures so they can be more efficiently serialised.
Clojure
19
star
14

re-frame-tracer

Clojure
15
star
15

abra-archive

A debugger for ClojureScript
CSS
10
star
16

re-playground

web editor to share documentation examples and play with small re-frame experiments
HTML
3
star
17

re-frame-http-fx-alpha-example

Clojure
2
star
18

dockerfiles-for-ci-images

Dockerfile
2
star
19

django-effect-handler

Python
1
star
20

shadow-cljs-bootstrap-require-macros

Clojure
1
star
21

shadow-cljs-bootstrap-init-cb

Reproduction test case for thheller/shadow-cljs#744
JavaScript
1
star
22

office-js-memory-leak

HTML
1
star
23

re-datascript-benchmark-experiments

Experimenting with DataScript performance for re-frame.
Clojure
1
star