{"id":13951109,"url":"https://github.com/onflow/flow-playground","last_synced_at":"2025-04-04T22:08:08.145Z","repository":{"id":37559974,"uuid":"257382701","full_name":"onflow/flow-playground","owner":"onflow","description":"Flow Playground front-end app 🤹‍♂️","archived":false,"fork":false,"pushed_at":"2024-10-15T18:16:34.000Z","size":13875,"stargazers_count":115,"open_issues_count":26,"forks_count":25,"subscribers_count":38,"default_branch":"staging","last_synced_at":"2025-03-28T21:06:05.500Z","etag":null,"topics":["dapps","javascript","onflow","react","smart-contracts"],"latest_commit_sha":null,"homepage":"https://play.flow.com","language":"TypeScript","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/onflow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":".github/security-scann.yaml","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-20T19:25:58.000Z","updated_at":"2025-03-27T09:32:51.000Z","dependencies_parsed_at":"2023-02-15T11:31:37.626Z","dependency_job_id":"f04f633e-f2dc-475a-a41c-36fb4e80a890","html_url":"https://github.com/onflow/flow-playground","commit_stats":null,"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onflow%2Fflow-playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onflow%2Fflow-playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onflow%2Fflow-playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onflow%2Fflow-playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onflow","download_url":"https://codeload.github.com/onflow/flow-playground/tar.gz/refs/heads/staging","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247256112,"owners_count":20909240,"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":["dapps","javascript","onflow","react","smart-contracts"],"created_at":"2024-08-08T06:01:13.792Z","updated_at":"2025-04-04T22:08:08.129Z","avatar_url":"https://github.com/onflow.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Flow Playground\n\nThe Flow Playground is the best way to learn and try Cadence. For newcomers to Flow,\nthe [Flow Developer Documentation](https://docs.onflow.org) includes a guide on how to use the Playground.\n\n## Philosophy\n\n### How It's Built\n\nWe built the Flow Playground as a static website or typical \"JAM stack\" website because of these properties:\n\n- Portability. It is easy to move a static website GUI between platforms if desired\n- We want to have the ability to deploy the Playground on peer-to-peer networks like IPFS or DAT\n- Fast build and deploy cycles\n- We want to maximize the amount of potential contributions\n\n### What is the Playground?\n\nWe want the Playground to have features that help you build on Flow. We also want to balance functionality with learning.\n\nThe Playground is a learning tool first and an awesome development tool second, although the two go hand-in-hand.\n\n## Contributing\n\n### Read the [Contribution Guidelines](CONTRIBUTING.md)\n\n### Git Workflow\n\n- Use merge squashing, not commit merging [eg. here](https://blog.dnsimple.com/2019/01/two-years-of-squash-merge/). Squash merge is your friend.\n- The `staging` branch is the base branch and contains the code deployed at https://play.staging.onflow.org.\n\n## Developing\n\n### Pre-requisites\n\nYou'll need to have Docker installed to develop.\n\n### Installation\n\nClone the repo\n\n```shell script\ngit clone git@github.com:onflow/flow-playground.git\n```\n\nInstall dependencies\n\n```\nnpm install\n```\n\nRename `.env.local` to `.env`\n\nStart the API (Flow Emulator and services)\n\n```\ndocker run -e FLOW_DEBUG=true -e FLOW_SESSIONCOOKIESSECURE=false -p 8080:8080 gcr.io/dl-flow/playground-api:latest\n```\n\nStart the React app\n\n```\nnpm run start\n```\n\n✨ The Playground is running on localhost:3000 ✨\n\nIf you are using VSCode, you can use this debugging config (works with workspaces)\n\n```\n{\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"name\": \"Launch\",\n      \"type\": \"chrome\",\n      \"request\": \"launch\",\n      \"port\": 9229,\n      \"url\": \"http://localhost:3000\",\n      \"webRoot\": \"${workspaceFolder}/src\",\n      \"sourceMaps\": true,\n      \"sourceMapPathOverrides\": {\n        \"webpack:///src/*\": \"${webRoot}/*\",\n        \"webpack:///./~/*\": \"${workspaceFolder}/node_modules/*\",\n        \"webpack:///./*\": \"${webRoot}/*\",\n        \"webpack:///*\": \"*\"\n      },\n      \"trace\": true\n    }\n  ]\n}\n```\n\n## Deployment\n\nThe runbook contains details on [how to deploy the Flow Playground web app](RUNBOOK.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonflow%2Fflow-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonflow%2Fflow-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonflow%2Fflow-playground/lists"}