{"id":20002011,"url":"https://github.com/pooltogether/pooltogether-client-monorepo","last_synced_at":"2025-05-04T15:33:49.104Z","repository":{"id":98740295,"uuid":"589731834","full_name":"pooltogether/pooltogether-client-monorepo","owner":"pooltogether","description":"Apps and packages for the PoolTogether Hyperstructure.","archived":false,"fork":false,"pushed_at":"2023-06-29T14:20:43.000Z","size":4421,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-25T04:03:30.190Z","etag":null,"topics":["ethereum","nextjs","rainbowkit","react","tailwind","tailwindcss","turborepo","typescript","viem","wagmi","web3"],"latest_commit_sha":null,"homepage":"","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/pooltogether.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":"2023-01-16T20:02:43.000Z","updated_at":"2024-10-02T20:39:41.000Z","dependencies_parsed_at":"2024-11-13T05:30:19.250Z","dependency_job_id":null,"html_url":"https://github.com/pooltogether/pooltogether-client-monorepo","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/pooltogether%2Fpooltogether-client-monorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pooltogether%2Fpooltogether-client-monorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pooltogether%2Fpooltogether-client-monorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pooltogether%2Fpooltogether-client-monorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pooltogether","download_url":"https://codeload.github.com/pooltogether/pooltogether-client-monorepo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252356686,"owners_count":21734992,"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":["ethereum","nextjs","rainbowkit","react","tailwind","tailwindcss","turborepo","typescript","viem","wagmi","web3"],"created_at":"2024-11-13T05:19:29.506Z","updated_at":"2025-05-04T15:33:49.090Z","avatar_url":"https://github.com/pooltogether.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/pooltogether/pooltogether--brand-assets\"\u003e\n    \u003cimg src=\"https://github.com/pooltogether/pooltogether--brand-assets/blob/977e03604c49c63314450b5d432fe57d34747c66/logo/pooltogether-logo--purple-gradient.png?raw=true\" alt=\"PoolTogether Brand\" style=\"max-width:100%;\" width=\"200\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n# 💻 \u0026nbsp; PoolTogether Client Monorepo\n\nThis monorepo includes many of PoolTogether's apps and packages in order to facilitate code sharing and maintainabiliy.\n\n## 💾 \u0026nbsp; Installation\n\nMake sure you have [pnpm](https://pnpm.io/) installed, as it is the package manager used throughout this monorepo.\n\n`pnpm install`\n\n## 🏎️ \u0026nbsp; Quickstart\n\n### Development\n\n`pnpm dev`\n\nEach app is already setup with its own port through its `package.json` dev script.\n\n---\n\n### Apps\n\n- `app`: App w/ core PoolTogether Hyperstructure functionality.\n- `landing-page`: App to explain the protocol and direct users to our other apps.\n\nAll apps above are [Next.js](https://nextjs.org/) apps with [Tailwind CSS](https://tailwindcss.com/) support, written in [TypeScript](https://www.typescriptlang.org/).\n\n**Repo Links:** [App](https://github.com/pooltogether/pooltogether-client-monorepo/tree/main/apps/app) | [Landing Page](https://github.com/pooltogether/pooltogether-client-monorepo/tree/main/apps/landing-page)\n\n---\n\n### Packages\n\n- `hyperstructure-client-js`: Protocol-specific functions to easily interact with onchain Hyperstructure data, using [Viem](https://viem.sh/).\n- `hyperstructure-react-hooks`: Shared React hooks specific to Hyperstructure functionality, using [WAGMI](https://wagmi.sh/).\n\n**Repo Links:** [Hyperstructure Client JS](https://github.com/pooltogether/pooltogether-client-monorepo/tree/main/packages/hyperstructure-client-js) | [Hyperstructure React Hooks](https://github.com/pooltogether/pooltogether-client-monorepo/tree/main/packages/hyperstructure-react-hooks)\n\n---\n\n### Shared Library\n\n- `config`: Shared config for TypeScript, [Tailwind](https://tailwindcss.com/), etc.\n- `generic-react-hooks`: Shared React hooks.\n- `react-components`: React component library utilizing some simpler components from `ui`, using [WAGMI](https://wagmi.sh/).\n- `types`: Shared Typescript types.\n- `ui`: Stub React component library with [Tailwind](https://tailwindcss.com/) used throughout many apps, using [Flowbite](https://flowbite-react.com/).\n- `utilities`: Shared Typescript utilities.\n\nThe dependencies for these libraries are picked up from the root `package.json` file of the monorepo!\n\n**Repo Links:** [Config](https://github.com/pooltogether/pooltogether-client-monorepo/tree/main/shared/config) | [Generic React Hooks](https://github.com/pooltogether/pooltogether-client-monorepo/tree/main/shared/generic-react-hooks) | [React Components](https://github.com/pooltogether/pooltogether-client-monorepo/tree/main/shared/react-components) | [Types](https://github.com/pooltogether/pooltogether-client-monorepo/tree/main/shared/types) | [UI](https://github.com/pooltogether/pooltogether-client-monorepo/tree/main/shared/ui) | [Utilities](https://github.com/pooltogether/pooltogether-client-monorepo/tree/main/shared/utilities)\n\n---\n\n### Utilities\n\nThis Turborepo has some additional tools already setup:\n\n- [Tailwind CSS](https://tailwindcss.com/) for styles\n- [TypeScript](https://www.typescriptlang.org/) for static type checking\n- [Prettier](https://prettier.io) for code formatting\n\n---\n\n### Adding New Network\n\n1. Update the `constants.ts` file in `utilities` with values and addresses for the new network.\n2. Make sure the `usePublicClients` and `usePublicClientsByChain` hooks in `hyperstructure-react-hooks` include the new network.\n3. Update the `config.ts` file and ENVs for any app you want to use this new network on.\n4. Optionally add any token logo overrides in the `constants.ts` file in the `react-components` package.\n\n---\n\n### Wallet Support\n\nWant your wallet in any of our apps? We rely on [RainbowKit](https://www.rainbowkit.com/) and [WAGMI](https://wagmi.sh) for wallet connection. If you have a suitable [wallet connector](https://github.com/rainbow-me/rainbowkit/tree/main/packages/rainbowkit/src/wallets/walletConnectors) we can add your wallet and give you a custom link to highlight your wallet for your users.\n\nAppend `?wallet=\u003cwallet key\u003e` to any app's links to highlight your wallet. Keys are visible on each app's `config.ts` file. Example: [App Config](https://github.com/pooltogether/pooltogether-client-monorepo/blob/main/apps/app/src/constants/config.ts).\n\n---\n\n### Known Issues / Fixes\n\nWhen adding/updating apps and/or packages, duplicate dependencies may be created, creating versioning issues. This can be resolved through running `pnpm up -r` as described [here](https://github.com/pnpm/pnpm/issues/2443), or just looking through `pnpm-lock.yaml` to identify version discrepancies.\n\nThe biggest culprit of the above is `@tanstack/react-query`, which sometimes is installed as two different versions and apps can no longer utilize hooks from the hooks package. This has been solved through the method described [here](https://github.com/TanStack/query/issues/3595#issuecomment-1248074333).\n\nIf editing component themes in `ui`, having the `Tailwind CSS IntelliSense` plugin for VSCode is recommended. In order to enable it for custom Flowbite themes and string class names, add `theme` and `.*ClassName*` to the `Class Attributes` setting.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpooltogether%2Fpooltogether-client-monorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpooltogether%2Fpooltogether-client-monorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpooltogether%2Fpooltogether-client-monorepo/lists"}