{"id":13506843,"url":"https://github.com/Day8/re-frame","last_synced_at":"2025-03-30T05:31:25.696Z","repository":{"id":24196670,"uuid":"27587921","full_name":"day8/re-frame","owner":"day8","description":"A ClojureScript framework for building user interfaces, leveraging React","archived":false,"fork":false,"pushed_at":"2025-03-17T18:54:28.000Z","size":83341,"stargazers_count":5461,"open_issues_count":22,"forks_count":719,"subscribers_count":142,"default_branch":"master","last_synced_at":"2025-03-20T20:31:24.710Z","etag":null,"topics":["clojurescript","re-frame","react","reagent","spa"],"latest_commit_sha":null,"homepage":"http://day8.github.io/re-frame/","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/day8.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.md","codeowners":null,"security":null,"support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"mike-thompson-day8"}},"created_at":"2014-12-05T11:08:39.000Z","updated_at":"2025-03-20T12:56:43.000Z","dependencies_parsed_at":"2022-07-12T13:33:44.645Z","dependency_job_id":"d78a3841-8df4-41d9-a262-eb5e893c4512","html_url":"https://github.com/day8/re-frame","commit_stats":{"total_commits":2469,"total_committers":209,"mean_commits":"11.813397129186603","dds":0.4953422438234103,"last_synced_commit":"b5fb9e697bee81999faf558cd6db4876e832495b"},"previous_names":[],"tags_count":62,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/day8%2Fre-frame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/day8%2Fre-frame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/day8%2Fre-frame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/day8%2Fre-frame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/day8","download_url":"https://codeload.github.com/day8/re-frame/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246281099,"owners_count":20752203,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clojurescript","re-frame","react","reagent","spa"],"created_at":"2024-08-01T01:00:58.770Z","updated_at":"2025-03-30T05:31:25.085Z","avatar_url":"https://github.com/day8.png","language":"Clojure","readme":"\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://day8.github.io/re-frame\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"docs/images/logo/re-frame-colour.png?raw=true\" alt=\"re-frame logo\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n## Derived Values, Flowing\n\n\u003e This, milord, is my family's axe. We have owned it for almost nine hundred years, see. Of course,\nsometimes it needed a new blade. And sometimes it has required a new handle, new designs on the\nmetalwork, a little refreshing of the ornamentation ... but is this not the nine hundred-year-old\naxe of my family? And because it has changed gently over time, it is still a pretty good axe,\ny'know. Pretty good.\n\n\u003e -- Terry Pratchett, The Fifth Elephant \u003cbr\u003e\n\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp; reflecting on identity, flow and derived values  (aka [The Ship of Theseus](https://en.wikipedia.org/wiki/Ship_of_Theseus))\n\u003cbr/\u003e \n\u003cbr/\u003e\n\n\u003c!--\n[![CI](https://github.com/day8/re-frame/workflows/ci/badge.svg)](https://github.com/day8/re-frame/actions?workflow=ci)\n[![CD](https://github.com/day8/re-frame/workflows/cd/badge.svg)](https://github.com/day8/re-frame/actions?workflow=cd)\n[![License](https://img.shields.io/github/license/day8/re-frame.svg)](license.txt)\n--\u003e\n\n## Overview\n\nre-frame is a ClojureScript framework for building user interfaces.\nIt has a data-oriented, functional design. Its primary focus is on high programmer productivity and scaling up to larger Single-Page applications.\n\nDeveloped 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. \n\nAcross 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. \n\nre-frame is lucky enough to enjoy an unfair advantage - ClojureScript is a Lisp. Alan Kay\nonce described Lisp as \"Maxwell's equations of software\". Paul Graham \ndescribed how Lisp was a competitive advantage for his startup.  When we use Lisp, we \nget to leverage 50 years of foliated excellence from the very best minds available.\nAnd then there's also a thriving ClojureScript community which delivers modern ideas and best-in-class tooling.\n\nAlthough re-frame leverages React (via Reagent), it only needs \nReact 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).\nIn re-frame, events are causal, and views are purely reactive. \n\n## Documentation \n\nThe re-frame documentation is [available here](https://day8.github.io/re-frame/).\n\n\n## The Current Version \n\n[![Clojars Project](https://img.shields.io/clojars/v/re-frame?labelColor=283C67\u0026color=729AD1\u0026style=for-the-badge\u0026logo=clojure\u0026logoColor=fff)](https://clojars.org/re-frame)\n\nFor full dependency information, see the [Clojars page](https://clojars.org/re-frame/)\n\n## Getting Help \n\n[![Get help on Slack](http://img.shields.io/badge/slack-clojurians%20%23re--frame-97C93C?labelColor=283C67\u0026logo=slack\u0026style=for-the-badge)](https://clojurians.slack.com/channels/re-frame)\n\n## Licence\n\nre-frame is [MIT licenced](license.txt)\n\n","funding_links":["https://github.com/sponsors/mike-thompson-day8"],"categories":["Badges","Core","front-end","Libraries","Examples","Awesome ClojureScript"],"sub_categories":["[ClojureScript](https://github.com/clojure/clojurescript)","Web Framework \u0026 Template"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDay8%2Fre-frame","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDay8%2Fre-frame","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDay8%2Fre-frame/lists"}