Nx + pnpm monorepo for a Hedera-focused hackathon stack with a unified fullstack Next.js app and shared TypeScript libraries.
apps/web: Fullstack Next.js app (UI + API routes)examples/hedera-kms-wallet-demo: Standalone demo CLI for@workit-poa/hedera-kms-walletlibs/common: Shared DTOs and utilitieslibs/auth: Authentication domain logiclibs/hedera-kms-wallet: AWS KMS-backed Hedera wallet provisioning/signing integrationinfra/terraform: Infrastructure as codedocs: Project documentation
pnpm install
cp .env.example .env
pnpm drizzle:generate
pnpm drizzle:migrate
pnpm devPOST /api/auth/otp/request: request email OTP challenge.GET|POST /api/auth/[...nextauth]: NextAuth session, OTP credentials sign-in, and OAuth providers (Google, X, Discord).GET /api/protected/profile: middleware-protected sample route.
pnpm build: Build all projectspnpm test: Run all testspnpm affected:build: Build only affected projectspnpm graph: Visualize dependency graph
Start local Hedera stack (Consensus + Mirror + JSON-RPC relay):
pnpm hedera:local:startHealth/status:
pnpm hedera:local:status
pnpm hedera:local:logs
pnpm hedera:local:stopFunded local keys to contracts env:
pnpm hedera:local:keysThen run local contract flows:
pnpm contracts:ping:local
pnpm contracts:test:local
pnpm contracts:deploy:local
pnpm hedera:hcs:local
pnpm hedera:hts:localSee dev/hedera-local-node/README.md and libs/contracts/README.md for detailed setup and env variables.
- Run locally:
pnpm installpnpm --filter @workit-poa/web dev- Open
http://localhost:3000for the landing page,http://localhost:3000/authfor auth entry, andhttp://localhost:3000/appfor the protected shell.
- Where to change copy:
- Landing content sections:
apps/web/components/landing/landing-page.tsx - Quest showcase cards:
apps/web/components/landing/quest-card.tsx - Sample proof receipt fields:
apps/web/components/landing/receipt-viewer.tsx - Auth messaging and labels:
apps/web/components/auth/auth-entry-panel.tsx(Formik + Yup OTP/OAuth panel)
- Landing content sections: