Signalist is an intelligent stock market companion that combines real-time market data with AI-powered personalization to keep investors informed without the noise.
Navigate the markets like never before — monitor live prices, discover companies through deep-dive charts and fundamentals, build a personalized watchlist, and set smart price alerts. Signalist learns your investment style during onboarding and delivers AI-curated daily news digests and personalized insights tailored to your portfolio — straight to your inbox.
Whether you're a seasoned trader or just getting started, Signalist cuts through the clutter so you never miss a signal.
- Market Overview widget tracking major indices and sectors via TradingView
- Stock Heatmap visualizing S&P 500 performance by sector, market cap, and change
- Top Stories feed with latest market news
- Market Quotes data table
- Command palette (
Ctrl+K) powered by Finnhub API for instant stock lookup - Popular stocks shown by default, debounced search as you type
- Stock detail pages with advanced candlestick charts, technical analysis, company profiles, and financials
- One-click watchlist toggle
- Save and manage your favorite stocks
- Stored per-user in MongoDB, unique per symbol
- Quick add/remove from any stock detail page
- Set upper and lower threshold alerts for any stock
- Get notified via email when a stock hits your target price
- Alert types: price above, price below, and volume spikes
- Personalized welcome email tailored to your investment goals, risk tolerance, and preferred industry — generated by Google Gemini
- Daily news summary — AI curates and summarizes market news relevant to your watchlist and delivers it straight to your inbox
- Built with Inngest event-driven workflows and cron jobs
| Category | Technologies |
|---|---|
| Framework | Next.js 16 (App Router, React 19) |
| Language | TypeScript |
| Styling | Tailwind CSS v4, tw-animate-css |
| UI Components | shadcn/ui (Radix UI primitives), lucide-react icons, cmdk |
| Authentication | Better-Auth (email/password, MongoDB adapter) |
| Database | MongoDB Atlas via Mongoose |
| Stock Data | Finnhub API (real-time quotes, news, company profiles) |
| Charts | TradingView widgets (market overview, heatmap, candlestick, technicals, financials) |
| AI / Workflows | Inngest + Google Gemini API |
| Nodemailer (Gmail SMTP) | |
| Code Quality | ESLint, Prettier, CodeRabbit |
| Deployment | Vercel |
- Node.js 20+
- npm
- MongoDB Atlas cluster (or local MongoDB instance)
- Finnhub API key (free tier available at finnhub.io)
- Google Gemini API key (Google AI Studio)
- Inngest account (inngest.com)
# Clone the repository
git clone https://github.com/yourusername/signalist.git
cd signalist
# Install dependencies
npm install
# Set up environment variables (see below)
cp .env.example .env
# Run the development server
npm run devOpen http://localhost:3000 in your browser.
# node environment
NODE_ENV=development
# Next.js
NEXT_PUBLIC_APP_URL=http://localhost:3000
# MongoDB
MONGODB_URI=your_mongodb_connection_string
# Better-Auth
BETTER_AUTH_SECRET=your_secret_key
BETTER_AUTH_URL=http://localhost:3000
# Google Gemini
GEMINI_API_KEY=your_gemini_api_key
# Nodemailer credential
NODEMAILER_EMAIL=<your email>
NODEMAILER_PASSWORD=<your password>
# Finnhub API
NEXT_PUBLIC_FINNHUB_API_KEY=your_finnhub_api_keysignalist/
├── app/ # Next.js App Router pages & API routes
│ ├── (auth)/ # Sign-in & sign-up pages
│ ├── (root)/ # Dashboard, stock detail pages
│ └── api/ # API routes (Inngest, etc.)
├── components/ # React components
│ ├── forms/ # Form field components
│ └── ui/ # shadcn/ui primitives
├── database/ # MongoDB connection & models
├── hooks/ # Custom React hooks
├── lib/ # Utilities, server actions, auth config
│ ├── actions/ # Server actions (auth, finnhub, watchlist)
│ ├── better-auth/ # Better-Auth configuration
│ ├── inngest/ # Inngest client, functions, prompts
│ └── nodemailer/ # Transporter & email templates
├── middleware/ # Auth middleware
├── public/assets/ # Static assets (logos, images)
├── types/ # Global TypeScript type definitions
└── scripts/ # Utility scripts| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run start |
Start production server |
npm run lint |
Run ESLint |
npm run test:db |
Test database connection |
- Core authentication & onboarding
- Real-time market dashboard
- Stock search & detail pages
- Watchlist management
- AI-powered daily news emails
- Personalized welcome emails
- Search page
- Price alert CRUD (backend + UI)
- Watchlist page
- Volume alerts & inactive user re-engagement