WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

chayan-1906/Signalist-Next.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

51 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ˆ Signalist β€” AI-Powered Real-time Stock Tracker

Next.js TypeScript MongoDB TailwindCSS License

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 Logo

🎯 Overview

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.


✨ Features

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

πŸ“Έ 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

πŸ› οΈ Tech Stack

Frontend

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

Backend & Database

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

APIs & Integrations

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

DevOps & Monitoring

Technology Purpose
πŸ“Š Vercel Analytics Performance monitoring and insights
πŸ“¦ Bundle Analyzer Webpack bundle size optimization
πŸ”’ Security Headers X-Frame-Options, CSP, and more

πŸš€ Getting Started

Prerequisites

Ensure you have the following installed:

  • Node.js 18.x or higher
  • npm
  • MongoDB instance (local or Atlas)

Installation

  1. Clone the repository

    git clone https://github.com/chayan-1906/Signalist-Next.js.git
    cd Signalist-Next.js
  2. Install dependencies

    npm install
  3. Configure environment variables

    Copy the example environment file and fill in your credentials:

    cp .env.example .env
  4. 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]
  5. Start the development server

    npm run dev
  6. Start Inngest Dev Server (for background jobs)

    npx inngest-cli@latest dev
  7. Open the app

    Navigate to http://localhost:3000


πŸ—οΈ Project Structure

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

πŸ”§ Core Features

πŸ“Š Dashboard

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

πŸ“ˆ Stock Details

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

⭐ Watchlist Management

  • 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

πŸ€– AI-Powered Personalization

  • 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

πŸ” Security Features

  • πŸ”’ 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

πŸ“ˆ Performance Optimizations

  • ⚑ 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

πŸ“œ Available 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 analyze Analyze bundle size

🚒 Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Import project in Vercel Dashboard
  3. Add all environment variables
  4. Deploy

Self-Hosted

  1. Build the production bundle:

    npm run build
  2. Start the server:

    npm run start
  3. Configure Inngest for production background jobs


🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.


πŸ‘¨β€πŸ’» Author

Padmanabha Das

GitHub LinkedIn Email


Built with ❀️ using Next.js, TypeScript, and TradingView

⭐ Star this repo if you found it helpful! ⭐

Track smarter. Invest better.

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •