A React dashboard for displaying Aave V3 market data with yield comparisons across multiple chains.
🌐 Live: aaveapy.com
📦 Backend Repo: aave-protocol-analysis
- Multi-chain Support: View Aave V3 markets across Ethereum, Arbitrum, Optimism, Base, Polygon, Avalanche, and more
- Yield Comparison: Compare supply/borrow APYs across all supported chains
- Incentive Tracking: Track additional yield from Merit, Merkl, and Brevis programs
- Merkl Forecast: Estimate next-run Merkl daily rewards/APR for hypothetical deposit amounts
- Real-time Data: Fetched from your configured API base (
VITE_API_BASE_URL); when unset locally, the app defaults to staging (https://staging-api.aaveapy.com/api). Production is api.aaveapy.com. - Mobile Friendly: Responsive design with optimized mobile experience
- Framework: React 18 + TypeScript
- Build Tool: Vite
- Styling: TailwindCSS + shadcn/ui
- Data Fetching: TanStack Query
- Node.js 18+
- npm
# Clone the repository
git clone https://github.com/0xPabloLI/aaveapy.git
cd aaveapy
# Install dependencies
npm install
# Start development server
npm run devThe app will be available at http://localhost:8080.
Create your local environment file from the example:
cp .env.example .env.localThen update values as needed:
# API base URL (optional). If omitted, the app uses staging API (see src/lib/apiBase.ts).
# Point at production, local backend, or Railway — see docs/conventions/api-base-urls.md
VITE_API_BASE_URL=http://localhost:3001/api| Command | Description |
|---|---|
npm run dev |
Start dev server |
npm run build |
Production build |
npm run preview |
Preview production build |
npm run lint |
Run ESLint |
npm run test |
Run tests |
npm run preflight:release |
Fast release readiness checks |
Full checks (includes lint/build/audit):
npm run preflight:release -- --fullCanonical source: docs/frontend-data-loading-matrix.md.
Docs ownership index: docs/DOCS-INDEX.md.
PR batching and automerge conventions: docs/PR_ANALYSIS.md. Merge hygiene, /merge, and review-thread rules: AGENTS.md (see Commit & Pull Request Guidelines).
Vercel post-deploy smoke test, deploy SHA meta tag, and rollback behavior: docs/conventions/vercel-deployment-smoke-test.md.
Quick rule:
- Keep one snapshot source per UI state.
- Prefer endpoint-level TTL and centralized stale-time buckets.
See SECURITY.md for vulnerability reporting and a public-release security checklist.
- Forecast state is loaded from
GET /meta/side-data(forecast.items). - Frontend forecast math only changes hypothetical TVL (based on user input amount * token price).
- Campaign type and regime are rendered from forecast state + local calculation (
APR_CAPPED,CATCHING_UP,PLANNED). - Canonical formulas and semantics:
docs/rate-calculation-formulas.md.
- Primary source is backend snapshot token prices from
GET /markets. - CoinGecko fallback runs only when required reserve token prices are missing from snapshot data.
- Canonical behavior and endpoint details:
docs/frontend-data-loading-matrix.md(Forecast Token Price Backup).
0xPabloLI - @0xPabloLI