A modern analytics platform for crypto and DeFi projects with wallet tracking, transaction volume analytics, token price correlations, and on-chain metrics.
- Wallet Growth Tracking - Monitor total, new, and active wallets over time
- Transaction Volume Analytics - Track daily volume and transaction counts
- Token Price Correlation - Visualize price correlations with scatter plots
- On-Chain Metrics - TVL, gas prices, active wallets, and more
- Protocol TVL Breakdown - Compare top DeFi protocols
- Recent Transactions Table - View latest on-chain activity
- Real-time dashboard with Neo-Brutalist design
- Privacy-first tracking
- UTM parameter tracking
- Funnel visualization
- Custom events
- Clerk authentication (sign-in/sign-up)
- Stripe subscription integration
- Free, Growth ($12/mo), and Pro ($39/mo) plans
- Webhook handling for auth and payments
- Supabase PostgreSQL with Row Level Security
- User profiles synced from Clerk
- Project management
- Analytics events storage
- Wallet and token tracking tables
- On-chain metrics snapshots
projects/vibeanalytics/
├── dashboard/ # Next.js 14 Dashboard App
│ ├── app/
│ │ ├── api/
│ │ │ ├── analytics/
│ │ │ ├── crypto/
│ │ │ ├── projects/
│ │ │ ├── track/
│ │ │ └── webhooks/
│ │ ├── dashboard/
│ │ ├── sign-in/
│ │ ├── sign-up/
│ │ ├── globals.css
│ │ └── layout.tsx
│ ├── components/
│ ├── lib/
│ ├── package.json
│ └── middleware.ts
├── landing/ # Next.js 14 Landing Page
│ ├── app/
│ │ ├── api/
│ │ ├── sections/
│ │ ├── sign-in/
│ │ ├── sign-up/
│ │ └── layout.tsx
│ ├── components/
│ ├── package.json
│ └── middleware.ts
├── database/
│ └── schema.sql # Supabase schema
├── .env.example
└── README.md
# Dashboard
cd dashboard
npm install
# Landing
cd ../landing
npm installCopy .env.example to .env.local in both apps and fill in your API keys.
- Create a Supabase project
- Run the SQL in
database/schema.sql - Copy your Supabase credentials
- Create a Clerk application
- Copy API keys to both apps
- Configure webhook URL:
/api/webhooks/clerk
- Create Stripe account
- Copy API keys
- Create products for Growth ($12) and Pro ($39) plans
- Update price IDs in
landing/app/sections/pricing.tsx - Configure webhook URL:
/api/webhooks/stripe
# Dashboard (port 3000)
cd dashboard
npm run dev
# Landing (port 3001)
cd landing
npm run devGET/POST /api/projects- List/Create projectsGET/PATCH/DELETE /api/projects/[id]- Manage projectGET /api/analytics/[projectId]- Get analytics dataPOST /api/track- Track events (public)GET/POST /api/crypto/wallets- Wallet trackingGET/POST /api/crypto/metrics- On-chain metrics
POST /api/create-payment-intent- Stripe paymentPOST /api/webhooks/stripe- Stripe webhooksPOST /api/webhooks/clerk- Clerk webhooks
users- Extended user profilesprojects- Analytics projectsanalytics_events- Raw tracking eventswallet_tracking- Tracked wallet addressestoken_tracking- Tracked tokensonchain_metrics- Metrics snapshotswebhook_events- Webhook logs
All tables have RLS enabled with policies ensuring users can only access their own data.
Run the deployment script:
./deploy.shThis will guide you through:
- GitHub repository setup
- Vercel project configuration
- Environment variable checklist
# Create GitHub repo at https://github.com/new
# Repository name: vibeanalytics
# Set to Public, don't initialize with README
git remote add origin https://github.com/eli5-claw/vibeanalytics.git
git push -u origin main- Go to https://vercel.com/new
- Import your GitHub repository:
eli5-claw/vibeanalytics - Configure two separate projects:
- Dashboard: Root Directory =
/dashboard - Landing: Root Directory =
/landing
- Dashboard: Root Directory =
- Add environment variables for each (see below)
- Deploy
Dashboard App:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/dashboard
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/dashboard
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...
Landing App:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/dashboard
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/dashboard
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_...
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...
- Enable connection pooling for serverless
- Set up automated backups
- Configure read replicas if needed
- Set up Clerk account and configure webhooks
- Set up Stripe account and create products
- Set up Supabase project and run migrations
- Add all environment variables to hosting platform
- Configure CORS for Supabase
- Set up custom domains
- Set up monitoring (Sentry, LogRocket)
- Configure CDN for static assets
- Set up email notifications
- Add analytics tracking (PostHog, Amplitude)
- Create tracking script for users to embed
- Framework: Next.js 14 (App Router)
- Styling: Tailwind CSS
- UI Components: Custom Neo-Brutalist design
- Charts: Recharts
- Animations: Framer Motion
- Auth: Clerk
- Payments: Stripe
- Database: Supabase (PostgreSQL)
- Icons: Lucide React
MIT