{"id":13400958,"url":"https://github.com/japgolly/scalajs-react","last_synced_at":"2025-05-13T21:10:51.831Z","repository":{"id":18287973,"uuid":"21457951","full_name":"japgolly/scalajs-react","owner":"japgolly","description":"Facebook's React on Scala.JS","archived":false,"fork":false,"pushed_at":"2025-04-20T19:15:04.000Z","size":13876,"stargazers_count":1653,"open_issues_count":25,"forks_count":231,"subscribers_count":62,"default_branch":"master","last_synced_at":"2025-04-28T17:02:45.806Z","etag":null,"topics":["fp","functional-programming","react","reactjs","router","scala","scalajs"],"latest_commit_sha":null,"homepage":"https://japgolly.github.io/scalajs-react/","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/japgolly.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"patreon":"japgolly"}},"created_at":"2014-07-03T09:58:42.000Z","updated_at":"2025-04-26T03:27:39.000Z","dependencies_parsed_at":"2024-06-19T02:49:27.877Z","dependency_job_id":"b43f97ca-49cd-4db4-ab38-4c7a3ac544b7","html_url":"https://github.com/japgolly/scalajs-react","commit_stats":{"total_commits":2787,"total_committers":83,"mean_commits":33.57831325301205,"dds":0.1241478292070326,"last_synced_commit":"4afbd02e4c656580d8070c5e6958a550223c7cd0"},"previous_names":[],"tags_count":89,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/japgolly%2Fscalajs-react","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/japgolly%2Fscalajs-react/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/japgolly%2Fscalajs-react/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/japgolly%2Fscalajs-react/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/japgolly","download_url":"https://codeload.github.com/japgolly/scalajs-react/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254029002,"owners_count":22002283,"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":["fp","functional-programming","react","reactjs","router","scala","scalajs"],"created_at":"2024-07-30T19:00:57.314Z","updated_at":"2025-05-13T21:10:46.818Z","avatar_url":"https://github.com/japgolly.png","language":"Scala","funding_links":["https://patreon.com/japgolly","https://www.patreon.com/japgolly)!"],"categories":["Scala","Uncategorized","Awesome React","Table of Contents","Web Frameworks","React [🔝](#readme)"],"sub_categories":["Uncategorized","Tools","Web Frameworks"],"readme":"scalajs-react\n=============\n\n[![Build Status](https://github.com/japgolly/scalajs-react/actions/workflows/ci.yml/badge.svg)](https://github.com/japgolly/scalajs-react/actions/workflows/ci.yml)\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/japgolly/scalajs-react?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nLifts Facebook's [React](https://facebook.github.io/react/) library into [Scala.js](http://www.scala-js.org/) and endeavours to make it as type-safe and Scala-friendly as possible.\n\nProvides (opt-in) support for pure functional programming, with additional modules for\n[Cats](https://typelevel.org/cats),\n[Cats Effect](https://typelevel.org/cats-effect),\nand [Monocle](https://www.optics.dev/Monocle).\n\nComes with utility modules [`extra`](extra/) and [`test`](test/), helpful for React in Scala(.js), rather than React in JS.\nIncludes a router, testing utils, performance utils, more.\n\n##### Contents\n\n- [Usage \u0026 Getting Started](doc/USAGE.md)\n  - [Modules](doc/MODULES.md)\n  - [VDOM](doc/VDOM.md)\n  - [Hooks](doc/HOOKS.md)\n  - [Refs](doc/REFS.md)\n  - [IDE support](doc/IDE.md)\n  - [The `Callback` class](doc/CALLBACK.md)\n  - [React Context](doc/CONTEXT.md)\n- Delving deeper\n  - [Global Config](doc/CONFIG.md)\n  - [Types](doc/TYPES.md)\n  - [Interoperability](doc/INTEROP.md)\n  - [Creating an Effect-Agnostic Library](doc/FX_AGNOSTICISM.md)\n  - [React SSR (Server-Side Rendering) on the JVM](https://blog.shipreq.com/post/scala_react_and_ssr_part_1)\n  - [Functional programming](doc/FP.md)\n- Scala-only Utilities\n  - [Router](doc/ROUTER.md)\n  - [Performance Management](doc/PERFORMANCE.md)\n  - [Other](doc/EXTRA.md)\n- [Testing](doc/TESTING.md)\n- [Live Examples \u0026 Demos](https://japgolly.github.io/scalajs-react/)\n- [Changelogs](doc/changelog) — [**v2.1.1** (Latest)](doc/changelog/2.1.1.md)\n\n\n##### External Resources\n\n* Tutorials / Blogs\n  * [Scala, React, and SSR](https://blog.shipreq.com/post/scala_react_and_ssr_part_1)\n  * [Scala.js and React: Building an Application for the Web](https://scala-bility.blogspot.com/2015/05/scalajs-and-react-building-application.html)\n\n* Templates\n  * [chandu0101 / scalajs-react-template](https://github.com/chandu0101/scalajs-react-template)\n  * [ochrons / scalajs-spa-tutorial](https://github.com/ochrons/scalajs-spa-tutorial)\n  * [TodoMVC example](http://todomvc.com/examples/scalajs-react)\n  * [Scala.js, React and ScalaCSS Boilerplate](https://github.com/shashkovdanil/scalajs-react-boilerplate)\n  * ['Intro to React' tutorial transposed into scala.js](https://github.com/MrCurtis/ScalaJSReactTutorial)\n\n* Libraries\n  * [test-state](https://github.com/japgolly/test-state/) - Integration/Functional/Property testing for scalajs-react.\n  * [scalajs-benchmark](https://github.com/japgolly/scalajs-benchmark/)\n  * [chandu0101 / scalajs-react-components](https://github.com/chandu0101/scalajs-react-components)\n  * [payalabs / scalajs-react-bridge](https://github.com/payalabs/scalajs-react-bridge) - Boilerplate free use of JS components\n  * [payalabs / scalajs-react-mdl](https://github.com/payalabs/scalajs-react-mdl) - (Material Design Lite components)\n  * [cquiroz / scalajs-react-virtualized](https://github.com/cquiroz/scalajs-react-virtualized) - Facade for react-virtualized\n  * [cquiroz / scalajs-react-clipboard](https://github.com/cquiroz/scalajs-react-clipboard) - Facade for react-copy-to-clipboard\n  * [kinoplan / scalajs-react-material-ui](https://github.com/kinoplan/scalajs-react-material-ui) - Material-UI components (+ Full Demo)\n  * [diode](https://github.com/suzaku-io/diode) - library for managing application state, influenced by Flux and Elm\n\n* Open Source Projects, which are using [scalajs-react](https://github.com/japgolly/scalajs-react)\n  * [Mr. Boilerplate](https://github.com/japgolly/mr.boilerplate) - good example of how to properly manage state in scalajs-react\n  * [scala-weather-app](https://github.com/malaman/scala-weather-app) - Yet another weather application, based on Scala.js, scalajs-react and Playframework\n  * [scalafiddle-editor](https://github.com/scalafiddle/scalafiddle-editor) - Web user interface for ScalaFiddle [https://scalafiddle.io](https://scalafiddle.io)\n  * [scastie](https://github.com/scalacenter/scastie) - An interactive playground for Scala [https://scastie.scala-lang.org](https://scastie.scala-lang.org)\n\n##### Requirements:\n* React ≥ 17\n* Scala ≥ 2.13\n* Scala.JS ≥ 1.10\n\n##### Support:\nIf you like what I do\n—my OSS libraries, my contributions to other OSS libs, [my programming blog](https://japgolly.blogspot.com)—\nand you'd like to support me, more content, more lib maintenance, [please become a patron](https://www.patreon.com/japgolly)!\nI do all my OSS work unpaid so showing your support will make a big difference.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjapgolly%2Fscalajs-react","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjapgolly%2Fscalajs-react","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjapgolly%2Fscalajs-react/lists"}