{"id":13682804,"url":"https://github.com/shadaj/slinky","last_synced_at":"2025-05-14T18:05:05.705Z","repository":{"id":39851333,"uuid":"73312485","full_name":"shadaj/slinky","owner":"shadaj","description":"Write Scala.js React apps just like you would in ES6","archived":false,"fork":false,"pushed_at":"2025-03-07T20:09:23.000Z","size":1402,"stargazers_count":662,"open_issues_count":48,"forks_count":57,"subscribers_count":22,"default_branch":"main","last_synced_at":"2025-04-20T10:57:29.250Z","etag":null,"topics":["frontend","react","scala","scalajs","slinky"],"latest_commit_sha":null,"homepage":"https://slinky.dev","language":"Scala","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/shadaj.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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":{"github":["shadaj"]}},"created_at":"2016-11-09T18:58:24.000Z","updated_at":"2025-04-09T22:27:02.000Z","dependencies_parsed_at":"2024-01-07T21:05:06.736Z","dependency_job_id":"b489f433-2c21-4e4b-8cf1-b107c172a198","html_url":"https://github.com/shadaj/slinky","commit_stats":{"total_commits":493,"total_committers":32,"mean_commits":15.40625,"dds":"0.36916835699797157","last_synced_commit":"0ce16f71253bb2b79990a012a12d14e616eb5769"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadaj%2Fslinky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadaj%2Fslinky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadaj%2Fslinky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadaj%2Fslinky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shadaj","download_url":"https://codeload.github.com/shadaj/slinky/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198514,"owners_count":22030965,"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":["frontend","react","scala","scalajs","slinky"],"created_at":"2024-08-02T13:01:53.447Z","updated_at":"2025-05-14T18:05:00.690Z","avatar_url":"https://github.com/shadaj.png","language":"Scala","funding_links":["https://github.com/sponsors/shadaj"],"categories":["Scala"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg width=\"400\" src=\"https://github.com/shadaj/slinky/raw/main/logo.png\"/\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003ci\u003eWrite Scala.js React apps just like you would in ES6\u003c/i\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/shadaj/slinky/actions?query=branch%3Amain\"\u003e\n    \u003cimg src=\"https://github.com/shadaj/slinky/actions/workflows/sbt.yml/badge.svg?branch=main\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.scala-js.org\"\u003e\n    \u003cimg src=\"https://www.scala-js.org/assets/badges/scalajs-1.16.0.svg\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://mvnrepository.com/artifact/me.shadaj/slinky-core\"\u003e\n    \u003cimg src=\"https://img.shields.io/maven-central/v/me.shadaj/slinky-core_sjs1_2.13\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Get started at [slinky.dev](https://slinky.dev)\n\n## What is Slinky?\nSlinky is a framework for writing React apps in Scala with an experience just like using ES6.\n\nSlinky lets you:\n+ Write React components in Scala with an API that mirrors vanilla React\n+ Implement interfaces to other React libraries with automatic conversions between Scala and JS types\n+ Write apps for React Native, React 360, and Electron, including the ability to share code with web apps\n+ Develop apps iteratively with included hot-reloading support\n\n## Contributing\nSlinky is split up into several submodules:\n+ `core` contains the React.js facades and APIs for creating components and interfaces to external components\n+ `web` contains bindings to React DOM and definitions for the HTML/SVG tag API\n+ `reactrouter` contains bindings to React Router\n+ `history` contains a facade for the HTML5 history API\n+ `native` contains bindings to React Native and external component definitions for native UI elements\n+ `vr` contains bindings to React 360 and external component definitions for VR UI elements\n+ `readWrite` contains the `Reader` and `Writer` typeclasses used to persist state for hot reloading\n+ `hot` contains the entrypoint for enabling hot-reloading\n+ `scalajsReactInterop` implements automatic conversions between Slinky and Scala.js React types\n+ `testRenderer` contains bindings to `react-test-renderer` for unit testing components\n+ `coreIntellijSupport` contains IntelliJ-specific support for the `@react` macro annotation\n+ `tests` contains the unit tests for the above modules (except native and vr which have local tests)\n+ `docs` and `docsMacros` contains the documentation site, which is a Slinky app itself\n\nTo run the main unit tests, first install the dependencies by running `npm install` inside the `tests` folder, then from the base folder run `sbt tests/test`. Similarly for React Native tests, run `npm install` inside the `native` folder, then from the base folder run `sbt native/test`.\n\nNote to IntelliJ IDEA users. When you try to import Slinky SBT definition in IDEA and encounter an exception like\n `java.nio.file.NoSuchFileException: /Users/someuser/.slinkyPluginIC/sdk/192.6817.14/plugins`, you should\ntry to download required IntelliJ files for plugin subproject manually before importing:\n\n```shell\nsbt coreIntellijSupport/updateIntellij\n```\n\nAnd then import the project again.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadaj%2Fslinky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshadaj%2Fslinky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadaj%2Fslinky/lists"}