Real-time stock market intelligence with AI-powered insights
Track live stock prices β’ Build personalized watchlists β’ Get AI-curated daily market news
Live Demo Β· Report Bug Β· Request Feature
Signalist is a modern stock market tracking platform built for investors who want real-time data, actionable insights, and personalized market intelligenceβall in one place.
Powered by Finnhub API for live market data and TradingView for professional-grade charting, Signalist combines robust financial data with an AI-driven personalization engine that delivers tailored welcome messages and daily news summaries directly to your inbox.
| Feature | Description |
|---|---|
| π Real-Time Market Data | Live stock prices, quotes, and company profiles via Finnhub API |
| π TradingView Charts | Professional candlestick, baseline, and technical analysis charts embedded directly |
| β Smart Watchlists | Build and manage personalized stock watchlists with one-click add/remove |
| π Intelligent Search | Fast stock discovery with instant search and popular suggestions |
| π€ AI-Powered Emails | Personalized welcome messages generated by Google Gemini AI |
| π° Daily News Digest | Automated AI-curated market news summaries delivered to your inbox |
| π Secure Authentication | Email/password auth with Better Auth and MongoDB session management |
| π Dark Mode | Eye-friendly dark theme optimized for extended market watching |
| π± Responsive Design | Seamless experience across desktop, tablet, and mobile devices |
πΈ Screenshots showcase the key features of Signalist. Add high-quality screenshots for maximum impact.
| Dashboard | Stock Details |
|---|---|
![]() |
![]() |
| TradingView widgets: Market Overview, Heatmap, Top Stories | Candlestick charts, Technical Analysis, Company Profile |
| Watchlist | Search Modal |
|---|---|
![]() |
![]() |
| Track your favorite stocks with real-time prices | Instant search with quick add to watchlist |
| Sign Up | Sign In |
|---|---|
![]() |
![]() |
| Personalized onboarding with investment preferences | Clean, secure authentication flow |
| Technology | Purpose |
|---|---|
| βοΈ Next.js 16 | React framework with App Router and Server Components |
| π TypeScript 5.9 | Type-safe development with strict mode |
| π¨ Tailwind CSS 4.1 | Utility-first styling with dark mode support |
| π§© Radix UI | Accessible, unstyled component primitives |
| π Lucide Icons | Beautiful, consistent icon library |
| Technology | Purpose |
|---|---|
| π MongoDB 7.0 | Document database for flexible data storage |
| π· Mongoose 9.0 | Elegant MongoDB object modeling |
| π Better Auth | Self-hosted authentication with session management |
| π§ Nodemailer | Email delivery for notifications |
| Service | Purpose |
|---|---|
| π Finnhub API | Real-time stock data, company profiles, and news |
| π TradingView | Professional charting widgets and market visualization |
| π€ Google Gemini AI | Personalized content generation for emails |
| β‘ Inngest | Background job orchestration for scheduled tasks |
| Technology | Purpose |
|---|---|
| π Vercel Analytics | Performance monitoring and insights |
| π¦ Bundle Analyzer | Webpack bundle size optimization |
| π Security Headers | X-Frame-Options, CSP, and more |
Ensure you have the following installed:
- Node.js 18.x or higher
- npm
- MongoDB instance (local or Atlas)
-
Clone the repository
git clone https://github.com/chayan-1906/Signalist-Next.js.git cd Signalist-Next.js -
Install dependencies
npm install
-
Configure environment variables
Copy the example environment file and fill in your credentials:
cp .env.example .env
-
Set up environment variables
# App Configuration NODE_ENV=development NEXT_PUBLIC_BASE_URL=http://localhost:3000 # Database (MongoDB Atlas recommended) MONGODB_URI=mongodb+srv://username:[email protected]/signalist # Authentication (Better Auth) BETTER_AUTH_SECRET=your-secret-key-minimum-32-characters-long BETTER_AUTH_URL=http://localhost:3000 # Google Gemini AI (for personalized emails) GEMINI_API_KEY=your-gemini-api-key # Finnhub Stock API (https://finnhub.io/) NEXT_PUBLIC_FINNHUB_API_KEY=your-finnhub-api-key # Email Configuration (Gmail with App Password) NODEMAILER_EMAIL=[email protected] NODEMAILER_PASSWORD=your-16-char-app-password NEXT_PUBLIC_SUPPORT_EMAIL=[email protected]
-
Start the development server
npm run dev
-
Start Inngest Dev Server (for background jobs)
npx inngest-cli@latest dev
-
Open the app
Navigate to http://localhost:3000
signalist/
βββ app/ # Next.js App Router
β βββ (root)/ # Main application routes
β β βββ page.tsx # Dashboard with TradingView widgets
β β βββ stocks/[symbol]/ # Dynamic stock details page
β β βββ watchlist/ # User's watchlist
β β βββ search/ # Search results page
β β βββ @modal/ # Parallel route for search modal
β βββ (auth)/ # Authentication routes
β β βββ sign-up/ # Registration with preferences
β β βββ sign-in/ # Login page
β βββ api/inngest/ # Inngest webhook endpoint
β
βββ components/ # React components
β βββ ui/ # Shadcn/Radix UI primitives
β βββ forms/ # Form input components
β βββ Header.tsx # Navigation header
β βββ SearchModal.tsx # Stock search modal
β βββ TradingViewWidget.tsx # Chart widget wrapper
β βββ WatchlistTable.tsx # Watchlist display
β
βββ lib/ # Utilities & configurations
β βββ actions/ # Server actions
β β βββ auth.actions.ts # Authentication logic
β β βββ watchlist.actions.ts # Watchlist operations
β β βββ finnhub.actions.ts # Stock data fetching
β βββ inngest/ # Background job definitions
β β βββ functions.ts # Welcome email, daily news
β β βββ prompts.ts # AI prompt templates
β βββ better-auth/ # Auth configuration
β βββ nodemailer/ # Email templates
β
βββ database/ # Database configuration
β βββ mongodb.ts # MongoDB client
β βββ mongoose.ts # Mongoose connection
β βββ models/ # Mongoose schemas
β
βββ hooks/ # Custom React hooks
βββ types/ # TypeScript definitions
βββ public/ # Static assets
The dashboard provides a comprehensive market overview with embedded TradingView widgets:
- Market Overview β 12-month price action for major indices
- Stock Heatmap β Visual sector-based market performance
- Top Stories β Real-time market news timeline
- Market Quotes β Live quotes across financial, tech, and service sectors
Deep-dive into any stock with professional analysis tools:
- Symbol Info β Company name, exchange, and basic info
- Candlestick Chart β Daily OHLC price action
- Baseline Chart β Long-term trend visualization
- Technical Analysis β Key indicators and signals
- Company Profile β Business description and fundamentals
- Financials β Key financial metrics and ratios
- Add stocks directly from search or stock detail pages
- View real-time prices, changes, market cap, and P/E ratios
- Remove stocks with one click
- Unique constraint prevents duplicates
- Welcome Emails β AI-generated personalized introductions based on user preferences
- Daily News Digest β Automated 12 PM UTC emails with curated news from watchlist stocks
- Preference-Based β Content tailored to investment goals, risk tolerance, and industry preferences
- π HTTP-only cookies for session management
- π‘οΈ Security headers (X-Frame-Options, X-Content-Type-Options, Referrer-Policy)
- π Password hashing via Better Auth
- β Input validation on all user actions
- π« Rate limiting on API endpoints
- β‘ Server Components β Reduced client-side JavaScript
- ποΈ Data Caching β Finnhub API responses cached for performance
- π¦ Bundle Analysis β Continuous bundle size monitoring
- πΌοΈ Image Optimization β Next.js automatic image optimization
- π Parallel Routes β Search modal without navigation overhead
| 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 analyze |
Analyze bundle size |
- Push your code to GitHub
- Import project in Vercel Dashboard
- Add all environment variables
- Deploy
-
Build the production bundle:
npm run build
-
Start the server:
npm run start
-
Configure Inngest for production background jobs
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
Built with β€οΈ using Next.js, TypeScript, and TradingView
β Star this repo if you found it helpful! β
Track smarter. Invest better.





