Your personalized, non-repetitive daily briefing for your portfolio and watchlist.
SignalFi is an AI-powered platform that generates daily briefings for your stock portfolio. It tells you what actually matters—without repeating news you've already seen.
Key Features:
- 🤖 AI-powered analysis using Google Gemini 2.0 Flash
- 🎯 Severity scoring (1-10) for every event
- 🚫 Zero repetition - never repeats news you've already read
- 🎧 Audio briefings for Pro/Premium subscribers
- 📊 Portfolio tracking with real-time updates
- 🔒 Regulatory-safe (NO buy/sell recommendations)
Before deploying, you'll need these API keys:
-
Supabase (database + auth)
- Go to https://supabase.com
- Create a free project
- Get your Project URL and anon key
-
Finnhub API (stock data - free tier)
- Go to https://finnhub.io/register
- Get your free API key (60 calls/min)
-
Google Gemini API (AI analysis - free tier)
- Go to https://aistudio.google.com
- Get your API key
-
OpenAI API (audio generation - optional)
- Go to https://platform.openai.com
- Get your API key for TTS
-
Stripe (subscriptions - optional for now)
- Go to https://dashboard.stripe.com
- Get your publishable and secret keys
-
Clone and install:
git clone <your-repo> cd SignalFi npm install
-
Set up environment:
cp .env.example .env.local
Then add your API keys to
.env.local -
Set up the database:
- Go to your Supabase project
- Navigate to SQL Editor
- Run the migration from
lib/briefing/generator.ts(or use the Supabase migrations we created)
-
Run the dev server:
npm run dev
-
Visit http://localhost:3000
-
Push your code to GitHub:
git init git add . git commit -m "Initial commit" git remote add origin <your-github-repo> git push -u origin main
-
Deploy on Vercel:
- Go to https://vercel.com/new
- Import your GitHub repository
- Add environment variables (see below)
- Click "Deploy"
-
Install Vercel CLI:
npm install -g vercel
-
Login:
vercel login
-
Deploy:
vercel --prod
Add these in your Vercel project settings:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
FINNHUB_API_KEY=your_finnhub_key
GOOGLE_GEMINI_API_KEY=your_gemini_key
OPENAI_API_KEY=your_openai_keysignalfi/
├── src/
│ ├── app/ # Next.js 15 App Router
│ │ ├── api/ # API routes
│ │ │ ├── briefing/ # Briefing generation
│ │ │ ├── audio/ # TTS generation
│ │ │ └── stocks/ # Stock data endpoints
│ │ ├── dashboard/ # Main dashboard
│ │ ├── portfolio/ # Holdings management
│ │ ├── watchlist/ # Watchlist management
│ │ ├── login/ # Authentication
│ │ └── pricing/ # Pricing page
│ └── ...
├── lib/
│ ├── ai/ # AI integration
│ │ ├── gemini.ts # Briefing generation
│ │ └── tts/ # Audio generation
│ ├── briefing/ # Briefing logic
│ │ └── generator.ts # Main briefing engine
│ ├── stocks/ # Stock data
│ │ ├── finnhub.ts # Finnhub API
│ │ └── yahoo.ts # Yahoo Finance
│ └── types.ts # TypeScript types
├── utils/
│ └── supabase/ # Supabase client setup
└── middleware.ts # Auth middleware
- Sign up - Create an account
- Add holdings - Go to Portfolio → Add stocks you own
- Add watchlist - Go to Watchlist → Add stocks you're tracking
- Generate briefing - Click "Generate Briefing" on dashboard
- View results - See AI analysis with severity scores
The app uses 7 main tables:
- profiles - User preferences and subscription tier
- holdings - Portfolio positions
- watchlist - Tracked stocks
- daily_reports - Generated briefings
- reported_events - Memory system (prevents repetition)
- report_sections - Individual briefing sections
- subscriptions - Stripe subscription data
- Data Collection - Fetches stock prices and news for your holdings/watchlist
- Deduplication - Checks
reported_eventsto avoid repeating news - Analysis - Gemini analyzes what's new and assigns severity scores
- Generation - Creates structured briefing with sections
- Storage - Saves report and events for future reference
| Feature | Free | Pro ($9.99) | Premium ($19.99) |
|---|---|---|---|
| Holdings | 3 | 15 | Unlimited |
| Watchlist | 5 | 25 | Unlimited |
| Daily Briefings | 3 | 15 | Unlimited |
| Audio | ✗ | ✓ | ✓ |
| History | 7 days | 30 days | Unlimited |
Contributions welcome! This is a demonstration project for AI-powered financial intelligence.
MIT
- Supabase - Backend infrastructure
- Google Gemini - AI analysis
- Finnhub - Real-time stock data
- OpenAI - Text-to-speech
- Vercel - Hosting platform
Built with Next.js 15, TypeScript, Supabase, and Google Gemini