Next.js 16 implementation of the new Giveth Quadratic Funding experience.
- Next.js 16 (App Router, React 19, Turbopack dev server)
- Tailwind CSS v4 with theme tokens that mirror the legacy
@giveth/ui-design-system - Radix UI primitives + custom components for consistent accessibility
- Zustand for lightweight client stores (theme, wallet UI, onboarding)
- React Query 5 + GraphQL Codegen +
graphql-requestfor data fetching - Thirdweb + Viem for wallet connectivity and on-chain interactions
- Vitest + Testing Library + Playwright for unit and end-to-end coverage
pnpm install
cp .env.example .env.local
pnpm devKey scripts:
| Command | Description |
|---|---|
pnpm dev |
Run Next.js locally with Turbopack |
pnpm build / pnpm start |
Production build & serve |
pnpm lint |
ESLint (Core Web Vitals rules) |
pnpm lint:fix |
Auto-fix lint issues where possible |
pnpm type-check |
Strict TypeScript diagnostics |
pnpm test / pnpm test:watch |
Vitest + Testing Library |
pnpm test:e2e |
Playwright regression suite |
pnpm codegen |
GraphQL artifacts from codegen.ts |
src/app– route groups (marketing, dashboard, donation, etc.) + root layoutsrc/components– layout primitives, UI kit (Radix + Tailwind), feature slicessrc/lib– platform helpers (env, GraphQL client, React Query, Thirdweb)src/store– Zustand stores with persistencedocs/– migration audit notes & future specifications
See .env.example for required variables:
NEXT_PUBLIC_GRAPHQL_ENDPOINTNEXT_PUBLIC_THIRDWEB_CLIENT_IDNEXT_PUBLIC_WALLETCONNECT_PROJECT_ID(optional)NEXT_PUBLIC_SCHEMA_URL(Either point to schema.gql file in v6 core repo, e.g. '../giveth-v6-core/src/schema.gql' or local graphQL endpoint like http://localhost:4000/graphql)
- Vitest runs in
jsdomwith Testing Library + MSW hooks (seesrc/test/setup.ts) - Playwright config lives at
playwright.config.ts - React Query Devtools automatically load in
development
docs/qf-audit.md– inventory of legacy pages/components/utilities that must be reimplemented here.