{"id":13726319,"url":"https://github.com/revery-ui/revery-playground","last_synced_at":"2025-05-04T06:31:50.268Z","repository":{"id":98903106,"uuid":"179888003","full_name":"revery-ui/revery-playground","owner":"revery-ui","description":"Live, interactive playground for Revery examples","archived":false,"fork":false,"pushed_at":"2019-05-19T00:45:37.000Z","size":575,"stargazers_count":17,"open_issues_count":5,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-29T07:26:52.301Z","etag":null,"topics":["functional-programming","live-coding","ocaml","playground","reason","reasonml","revery"],"latest_commit_sha":null,"homepage":"https://www.outrunlabs.com/revery/playground","language":"OCaml","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/revery-ui.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-04-06T21:21:17.000Z","updated_at":"2022-11-22T19:34:23.000Z","dependencies_parsed_at":"2024-01-06T02:03:41.487Z","dependency_job_id":"8fb024fb-0edb-4963-9b09-ee32b5285eb7","html_url":"https://github.com/revery-ui/revery-playground","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revery-ui%2Frevery-playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revery-ui%2Frevery-playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revery-ui%2Frevery-playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revery-ui%2Frevery-playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/revery-ui","download_url":"https://codeload.github.com/revery-ui/revery-playground/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252224511,"owners_count":21714409,"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":["functional-programming","live-coding","ocaml","playground","reason","reasonml","revery"],"created_at":"2024-08-03T01:02:59.139Z","updated_at":"2025-05-04T06:31:50.223Z","avatar_url":"https://github.com/revery-ui.png","language":"OCaml","funding_links":[],"categories":["OCaml"],"sub_categories":[],"readme":"[![Build Status](https://dev.azure.com/revery-ui/revery/_apis/build/status/revery-ui.revery-playground?branchName=master)](https://dev.azure.com/revery-ui/revery/_build/latest?definitionId=9\u0026branchName=master)\n\n# revery-playground\n\n## Build\n\n### Prerequisites\n\n- Make sure you have run `esy build` from the root directory\n\n### Build\n\n- `esy install`\n- `esy build`\n- `npm install`\n- `npm run build`\n\n### Testing\n\n- `npm start`\n\n## Code Structure\n\nThe Revery playground is split into two components:\n- The _front-end_ (renderer) - responsible for rendering the UI\n- The _back-end_ (worker) - responsible for parsing and compiling the code\n\nThe code is structured as follows:\n- `src/lib/` - Common code between the renderer and worker, common types, and the communication protocol.\n- `src/renderer` - The front-end renderer code. This is responsible for rendering, layout, and acquiring and passing UI events to the worker.\n- `src/worker` - The back-end worker code. This is responsible for picking up code changes, parsing, and notifying the UI. It also runs the app loop (animations, ticker).\n\n\n## Special Thanks\n\n- [@thangngoc89](https://github.com/thangngoc89) for sketch.sh and his great blog series: https://khoanguyen.me/sketch/part-2-the-engine/ (and [sketch-v2](https://github.com/thangngoc89/sketch-v2) - which powers the latest builds of the playground).\n- [Ocsigen](http://ocsigen.org) for the excellent [js_of_ocaml](https://github.com/ocsigen/js_of_ocaml) tool\n- [Microsoft](https://microsoft.com) for the excellent [Monaco editor](https://microsoft.github.io/monaco-editor/index.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevery-ui%2Frevery-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frevery-ui%2Frevery-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevery-ui%2Frevery-playground/lists"}