{"id":21820157,"url":"https://github.com/5afe/safe-apps-workshop","last_synced_at":"2026-05-08T04:18:35.434Z","repository":{"id":95347823,"uuid":"514233140","full_name":"5afe/safe-apps-workshop","owner":"5afe","description":"safe-apps-workshop","archived":false,"fork":false,"pushed_at":"2023-01-19T02:51:17.000Z","size":554,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-21T10:53:03.783Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/5afe.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-15T10:46:38.000Z","updated_at":"2022-09-09T10:45:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"c3a12a08-7a12-4ba2-aeeb-de770590f935","html_url":"https://github.com/5afe/safe-apps-workshop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/5afe/safe-apps-workshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5afe%2Fsafe-apps-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5afe%2Fsafe-apps-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5afe%2Fsafe-apps-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5afe%2Fsafe-apps-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/5afe","download_url":"https://codeload.github.com/5afe/safe-apps-workshop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5afe%2Fsafe-apps-workshop/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266048683,"owners_count":23868743,"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":[],"created_at":"2024-11-27T16:28:53.801Z","updated_at":"2026-05-08T04:18:30.397Z","avatar_url":"https://github.com/5afe.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Safe Apps Workshop\n\nWelcome to the Safe Apps Workshop monorepo. In this repository you will find some resources to showcase step by step how to integrate a Dapp with the Safe. Even if you are creating a new application or adapting an existing one you will be able to check here some examples explaining the key points.\n\n| Project                   | Description                                                                                                                            |\n| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |\n| counter-onboard-frontend  | Simple Counter Dapp implemented with [React](https://reactjs.org/) \u0026 [Web3-onboard](https://docs.blocknative.com/onboard)              |\n| counter-safe-app-frontend | Simple Counter Safe App implemented with [React](https://reactjs.org/) \u0026 [Safe Apps SDK](https://github.com/safe-global/safe-apps-sdk) |\n| faucet-backend            | Simple Faucet backend                                                                                                                  |\n| smart-contracts-hardhat   | Hardhat Project with the Counter \u0026 Faucet contracts                                                                                    |\n\n## Setting up the environment\n\nTo use this repository we are assuming that you have `git`, `node` and [yarn](https://yarnpkg.com) already installed.\nInstall project dependencies using:\n```\nyarn install\n```\n\n## Tutorial guide\n\nIt is expected that `counter-onboard-frontend` and `counter-safe-app-frontend` are not working as a Safe App out of the box. To make them work you should follow instructions from [counter-onboard-frontend](counter-onboard-frontend/README.md) or [counter-safe-app-frontend](counter-safe-app-frontend/README.md).\nWe recommend you getting a quick look to the [available scripts](#available-scripts) before starting with any of the guides.\n\n## Available Scripts\n\nTo run the different projects you can use the following commands in the root directory:\n\n### `start:counter-onboard`\n\nRuns the Counter Dapp using [Web3-onboard](https://docs.blocknative.com/onboard). In the first part of the workshop we will use the [Web3-onboard Safe Module](https://docs.blocknative.com/onboard/gnosis) to use this Dapp as a Safe App \\\n\nAfter run the start script, open [http://localhost:3000](http://localhost:3000) to view it in the browser.\nThe page will reload if you make edits.\\\nYou will also see any lint errors in the console.\n\n### `start:counter-safe-app`\n\nRuns the Counter Safe App using [Safe Apps SDK](https://github.com/safe-global/safe-apps-sdk).\n\nAfter run the start script, open [http://localhost:3000](http://localhost:3000) to view it in the browser.\nThe page will reload if you make edits.\\\nYou will also see any lint errors in the console.\n\n### `yarn test`\n\nLaunches the test runner.\n\n### `yarn test:coverage`\n\nGenerates the test coverage report.\n\n### `yarn contract:deploy \u003cnetwork\u003e`\n\nYou can deploy your own Counter and Faucet contracts\n\n### `start:faucet`\n\nRuns the Faucet backend in development mode\n\n### `start:faucet:prod`\n\nRuns the Faucet backend in production mode\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F5afe%2Fsafe-apps-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F5afe%2Fsafe-apps-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F5afe%2Fsafe-apps-workshop/lists"}