AI-Powered Financial Coaching That Adapts to Your Personality
A modern, serverless financial coaching platform that provides personalized guidance based on your unique "Money Style" β an MBTI-informed approach to understanding your financial decision-making patterns.
- 20-question MBTI-based assessment (~3 minutes)
- 16 unique Money Style profiles with detailed descriptions
- Tailored coaching approaches for each personality type
- Full accessibility support (WCAG 2.1 AA compliant)
- Keyboard navigation with arrow keys, number shortcuts, and screen reader support
- Mobile-optimized with touch interactions and responsive design
- Goals Tab: Track financial goals with visual progress indicators
- Behavior Tab: Analyze spending patterns and identify behavioral insights
- Plan Tab: Actionable task management with priority levels
- Contradiction Detection: AI-powered analysis identifies misalignments between stated goals and actual behavior
- Clerk authentication with session management
- Plaid integration for secure bank connections (sandbox mode)
- All data stored in Vercel KV (serverless Redis)
- No traditional database β fully edge-optimized
- Server-side rendering with Next.js App Router
- Glassmorphism UI with modern dark theme
- Smooth animations powered by Framer Motion
- Real-time data visualization with Recharts
- Progressive Web App (PWA) ready
- Auto-save progress β never lose assessment data on refresh
- Rate limiting to prevent spam and abuse
- Comprehensive error handling with user-friendly toast notifications
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β User Interface β
β Next.js 16 + React + TypeScript + Tailwind CSS v4 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Serverless Backend β
β Vercel Edge Functions + API Routes β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββΌβββββββββββββββββββ
β β β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β Vercel KV β β Plaid API β β AWS Lambda β
β (Redis) β β (Banking) β β (Optional) β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
Frontend:
- Next.js 16.1.1 - React framework with App Router
- TypeScript 5.x - Type safety
- Tailwind CSS v4 - Utility-first styling
- Framer Motion - Animations
- Recharts - Data visualization
Backend:
- Vercel Edge Functions - Serverless compute
- Vercel KV - Redis key-value store
- Clerk - Authentication & user management
External Services:
- Plaid - Bank account integration
- AWS Lambda - ML-powered contradiction detection (optional)
- Node.js 18+ and npm/yarn/pnpm
- Vercel account (for deployment)
- Clerk account (for authentication)
- Plaid account (for banking integration - sandbox mode works)
-
Clone the repository
git clone https://github.com/leooladimu/fincoach.git cd fincoach -
Install dependencies
npm install # or yarn install # or pnpm install
-
Set up environment variables
Create a
.env.localfile in the root directory:# Clerk Authentication NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key CLERK_SECRET_KEY=your_clerk_secret_key # Vercel KV (Redis) KV_REST_API_URL=your_kv_url KV_REST_API_TOKEN=your_kv_token # Plaid (Banking) PLAID_CLIENT_ID=your_plaid_client_id PLAID_SECRET=your_plaid_secret PLAID_ENV=sandbox # AWS (Optional - for ML features) AWS_ACCESS_KEY_ID=your_aws_key AWS_SECRET_ACCESS_KEY=your_aws_secret AWS_REGION=us-east-1
-
Run the development server
npm run dev
-
Open your browser
Navigate to http://localhost:3000
fincoach/
βββ app/
β βββ (auth)/
β β βββ onboarding/ # Onboarding flow
β β β βββ page.tsx # User info collection
β β β βββ assessment/ # Money Style assessment
β β βββ layout.tsx
β βββ (dashboard)/
β β βββ goals/ # Goals dashboard
β β βββ behavior/ # Behavior analysis
β β βββ plan/ # Action plan & tasks
β β βββ profile/ # User profile
β β βββ layout.tsx
β βββ api/
β β βββ assessment/ # Assessment scoring
β β βββ plaid/ # Plaid integration
β β βββ analyze/ # Contradiction detection
β βββ globals.css # Global styles + theme
β βββ layout.tsx # Root layout
β βββ page.tsx # Landing page
βββ lib/
β βββ assessment.ts # Assessment questions & scoring
β βββ contradictions.ts # Contradiction detection logic
β βββ kv.ts # Vercel KV utilities
β βββ plaid.ts # Plaid client setup
β βββ hooks/ # React hooks
βββ types/
β βββ index.ts # TypeScript type definitions
βββ aws/
β βββ lambda/ # AWS Lambda functions
βββ public/ # Static assets
- Background:
#000000(Pure black) - Primary Accent:
#10b981(Emerald-500 - growth/success) - Secondary Accent:
#3b82f6(Blue-500 - actions) - Tertiary Accent:
#8b5cf6(Violet-500 - highlights) - Danger:
#ef4444(Red-500 - warnings)
- Font: Geist Sans & Geist Mono (Vercel's font family)
- Scales: Responsive text sizing (mobile-first)
- Glassmorphism effects (
backdrop-blur-xl+rgba(20,20,20,0.7)) - Gradient text for emphasis
- Custom scrollbars
- Smooth transitions with cubic-bezier easing
- Validation: Frontend + backend validation of all answers
- Rate Limiting: 5 submissions per hour per user+IP
- Progress Saving: Auto-saves to localStorage
- Accessibility:
- Full keyboard navigation (arrow keys, Enter, Space, Backspace, 1-4)
- ARIA labels and roles
- Screen reader support
- Focus management
- Mobile: Touch-optimized with active states and responsive layouts
- Compares stated goals vs. actual spending patterns
- Identifies behavioral misalignments
- Provides actionable insights
- Optional AWS Lambda integration for ML-powered analysis
- Real-time data from Plaid (sandbox)
- Visual progress tracking with charts
- Priority-based task management
- Personalized insights based on Money Style
- Authentication: Secure session management with Clerk
- Data Storage: Encrypted at rest in Vercel KV
- API Security: Rate limiting on all endpoints
- Input Validation: Comprehensive frontend + backend validation
- No PII Leakage: Minimal personal data collection
- HTTPS Only: All connections encrypted
-
Push to GitHub
git push origin main
-
Import to Vercel
- Go to vercel.com/new
- Import your GitHub repository
- Add environment variables
- Deploy!
-
Configure KV Storage
- Create a Vercel KV database in your project
- Copy the connection strings to your environment variables
Make sure to add all .env.local variables to your Vercel project settings.
{
userId: string;
email: string;
name: string;
createdAt: string;
moneyStyle?: {
type: MBTIType; // e.g., "ENFP"
scores: MBTIScores;
assessmentDate: string;
};
lifeContext?: {
age?: number;
employmentStatus?: string;
};
statedPreferences?: {
priorityGoals: string[];
};
}{
id: string;
userId: string;
title: string;
targetAmount: number;
currentAmount: number;
targetDate: string;
category: string;
createdAt: string;
}{
id: string;
userId: string;
type: string;
severity: 'low' | 'medium' | 'high';
description: string;
detectedAt: string;
resolved: boolean;
}Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- MBTI Framework - For personality type methodology
- Plaid - For secure banking integration
- Vercel - For hosting and serverless infrastructure
- Clerk - For authentication
- Next.js Team - For the amazing framework
Leo Oladimu - @leooladimu
Live Demo: https://fincoach.oleo.dev
- Real Plaid integration (production)
- Additional Money Style profiles
- Advanced ML contradiction detection
- Bill tracking & reminders
- Investment portfolio analysis
- Multi-currency support
- Mobile app (React Native)
- Social features (community goals)