Frontend for the Lattice cross-chain swap and bridge experience.
- Next.js 16 (App Router)
- React 19
- TypeScript (strict)
- Tailwind CSS v4
- Zustand + TanStack Query
- Biome (lint + format)
- pnpm
- Node.js
22.x(seepackage.jsonengines) - pnpm
9.x
pnpm install
cp .env.example .env.local # if available, otherwise create manually
pnpm devApp runs at http://localhost:3000.
Client/runtime:
NEXT_PUBLIC_PRIVY_APP_IDNEXT_PUBLIC_SOLVER_API_URLNEXT_PUBLIC_SUI_RPC_URL(optional, defaults to Sui mainnet fullnode)
Server/API routes:
PRIVY_APP_SECRETPRIVY_AUTHORIZATION_KEYENCLAVE_URLENCLAVE_API_KEYSOLVER_API_KEY
pnpm dev
pnpm build
pnpm start
pnpm lint
pnpm lint:fix
pnpm format
pnpm typecheck
pnpm test
pnpm test:run
pnpm test:e2eIf an AI assistant is working in frontend/:
- Read
CLAUDE.mdfirst for architecture and guardrails. - Prefer existing patterns over introducing new abstractions.
- Keep pages thin (
app/**/page.tsxshould delegate to views/components). - Use Biome for style/lint fixes (
pnpm lint:fix), not ESLint/Prettier. - Validate edits with
pnpm typecheckandpnpm lintbefore finishing.
See CONTRIBUTING.md.