MCPcopy
hub / github.com/guildxyz/guild.xyz

github.com/guildxyz/guild.xyz @main sqlite

repository ↗ · DeepWiki ↗
2,077 symbols 10,220 edges 1,456 files 2 documented · 0%
README

Guild.xyz interface

Code check

Open source interface for Guild.xyz -- a tool for platformless membership management.

Key dependencies overview

  • Framework
  • React with Next.js
  • Styling:
  • Chakra UI (migration to Tailwind CSS and Radix UI in progress)
  • Phosphor icons
  • Framer motion
  • State management:
  • SWR for fetching and caching
  • React Hook Form for form state
  • jotai for custom, simple global state
  • Testing:
  • Storybook - live deployment
  • Playwright
  • Web3 related:
  • viem
  • wagmi for connection management
  • Data visualization, graphics:
  • visx
  • threejs
  • Deployment:
  • Vercel
  • Product analytics:
  • PostHog
  • Error monitoring:
  • BugSnag

Development

Running the interface locally

  1. npm i
  2. npm run dev
  3. If you don't have the secret environment variables, copy the .env.example as .env.local.

Open http://localhost:3000 in your browser to see the result.

[!WARNING] We've recently turned on strict and strictNullChecks tsconfig options, and decided to gradually fix the related TypeScript issues. The pre-commit hook will ignore these, but it is expected that you'll see different issues during local development. Feel free to open a PR if you fix some of them. :wink:

For Windows users

If you encounter the error ERR_OSSL_EVP_UNSUPPORTED you can do :

export NODE_OPTIONS=--openssl-legacy-provider
npm i --force
npm run dev

Getting secret environment variables (for core team members):

  1. Get added to the team on Vercel
  2. npm i vercel@latest -g
  3. vercel link
  4. vercel env pull .env.local

Code guidelines

  • Always use design system values for styling when possible
  • Follow the file naming and folder structure pattern of the repository

Committing

  • Use Conventional Commits when applicable (recommended but not required)
  • Always use present tense in commit messages
  • Always review your changes before committing
  • A pre-commit hook type checks the code base. If it fails but you want to commit a WIP anyway use --no-verify

PR flow

  • Always create a draft PR right away when starting to work on a new branch
  • Vercel creates a unique link for each commit and each branch (showing the latest version of the branch), which you can get from the deployment page. Share the branch link with the team if needed
  • Always self-review changes in your PR before asking others. Refactor, clean up and add comments if needed. Repeat until there's no room for improvement that you see, or you've left a comment where there is
  • If you consider it ready, mark it as ready for review and ask for a review, or merge it by yourself if you have the permission

Extension points exported contracts — how you extend this code

paths (Interface)
(no doc)
src/types/billingTypes.ts
ImagePayload (Interface)
(no doc)
src/components/lexical/nodes/ImageNode.tsx
Window (Interface)
(no doc)
src/utils/intercom.ts
Props (Interface)
(no doc)
src/v2/components/CopyableAddress.tsx
RootLayoutProps (Interface)
(no doc)
src/app/layout.tsx
Window (Interface)
(no doc)
src/hooks/useIsIOS.ts
components (Interface)
(no doc)
src/types/billingTypes.ts
RadioButtonOptionProps (Interface)
(no doc)
src/components/common/RadioButtonGroup.tsx

Core symbols most depended-on inside this repo

useGuild
called by 250
src/components/[guild]/hooks/useGuild.ts
parseFromObject
called by 227
src/utils/parseFromObject.ts
cn
called by 202
src/v2/lib/utils.ts
setValue
called by 166
src/hooks/useLocalStorage.ts
toast
called by 100
src/v2/components/ui/hooks/useToast.ts
useDisclosure
called by 99
src/v2/hooks/useDisclosure.ts
fetcher
called by 88
src/utils/fetcher.ts
useUser
called by 84
src/components/[guild]/hooks/useUser.ts

Shape

Function 1,983
Interface 40
Enum 27
Method 17
Class 10

Languages

TypeScript100%

Modules by API surface

src/components/lexical/nodes/ImageNode.tsx19 symbols
src/components/[guild]/Requirements/components/GuildCheckout/MintGuildPin/Fuel/GuildPinContract.ts16 symbols
src/hooks/useResolveAddress.ts12 symbols
src/components/[guild]/activity/ActivityLogFiltersBar/components/ActivityLogFiltersContext.tsx10 symbols
scripts/bundleAnalyzer.mjs10 symbols
src/v2/components/ui/hooks/useToast.ts9 symbols
src/v2/components/Layout/Layout.tsx8 symbols
src/components/lexical/plugins/ToolbarPlugin/ToolbarPlugin.tsx8 symbols
src/v2/components/Account/components/AccountModal/components/FarcasterProfile.tsx7 symbols
src/v2/components/Account/components/AccountModal/components/EmailAddress.tsx7 symbols
src/rewards/Token/hooks/useCalculateToken.tsx7 symbols
src/requirements/Points/PointsRequirement.tsx7 symbols

Dependencies from manifests, versioned

@biomejs/biome1.9.0 · 1×
@bugsnag/js7.22.4 · 1×
@chakra-ui/anatomy2.1.2 · 1×
@chakra-ui/next-js2.2.0 · 1×
@chakra-ui/react2.8.2 · 1×
@chakra-ui/theme-tools2.0.17 · 1×
@emotion/react11.11.4 · 1×
@emotion/styled11.11.0 · 1×
@fuels/connectors0.36.0 · 1×
@fuels/react0.36.0 · 1×

For agents

$ claude mcp add guild.xyz \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact