A modern, professional web application that provides AI-powered insights and analysis of content from HackerNews stories and 14 HackTheBox RSS feeds. Built with Next.js, TypeScript, and Tailwind CSS.
- 📊 Multi-Source Content: Fetches from HackerNews stories + 14 HackTheBox RSS feeds
- 🛡️ Cybersecurity Focus: Specialized categories (Red Team, Blue Team, Threat Intel, AI/Security, etc.)
- 🤖 AI-Powered Analysis: Uses OpenRouter (free!) to provide summaries, sentiment analysis, and key insights
- 📈 Advanced Filtering: Filter by source, category, and content type
- 🔀 Unified Feed: Seamlessly combines different content types in one view
- 📈 Trend Analysis: Cross-source trend identification and community sentiment
- 🎨 Modern UI: Professional, responsive design with source-specific styling
- ⚡ Fast Performance: Optimized with caching and efficient RSS parsing
- 🔄 Auto-refresh: Cron jobs keep data fresh (every 15 minutes)
- 📱 Mobile-friendly: Responsive design that works on all devices
- Real-time top stories from Hacker News
- Community scores and discussion metrics
- Traditional tech news and startup content
- Red Teaming: Offensive security content
- Blue Teaming: Defensive security and SOC content
- Threat Intelligence: Latest threat research and APT analysis
- Artificial Intelligence: AI in cybersecurity applications
- Security 101: Beginner-friendly security tutorials
- CISO Diaries: Leadership and governance insights
- Write-Ups: CTF solutions and technical walkthroughs
- Career Stories: Cybersecurity career advice
- Education: Training and certification content
- Customer Stories: Real-world implementation cases
- Cyber Teams: Team building and management
- News: Latest cybersecurity news and updates
- Humans of HTB: Community stories and profiles
- All Content: Aggregated feed from all categories
git clone <your-repo-url>
cd hackernews-ai-analyzer
npm installCopy the environment template:
cp .env.example .env.localAdd your OpenRouter API key for free AI analysis (optional):
OPENROUTER_API_KEY=your_openrouter_api_key_here
CRON_SECRET=your_random_secret_for_cron_securityNote: The app works without an OpenRouter API key - it will use mock analysis instead.
npm run devVisit http://localhost:3000 to see the application.
- Push your code to GitHub/GitLab/Bitbucket
- Import the project in Vercel
- Vercel will automatically detect Next.js and deploy
- Add environment variables in Vercel dashboard (optional):
OPENROUTER_API_KEY- Your OpenRouter API keyCRON_SECRET- Random string for cron endpoint security
- Go to your project dashboard in Vercel
- Click on "Settings" → "Environment Variables"
- Add the following variables (all optional):
| Name | Value | Description |
|---|---|---|
OPENROUTER_API_KEY |
sk-or-... |
OpenRouter API key for free AI analysis |
CRON_SECRET |
random-string |
Secure your cron endpoint |
The application includes automatic cron jobs that run every 15 minutes to refresh story data. These are configured in vercel.json and work automatically on Vercel.
tech-security-ai-analyzer/
├── app/
│ ├── api/
│ │ ├── stories/ # Fetch HN stories
│ │ ├── rss/ # Parse HackTheBox RSS feeds
│ │ ├── content/ # Unified content API
│ │ ├── analyze/ # AI analysis (supports both sources)
│ │ └── cron/ # Scheduled updates
│ ├── globals.css # Global styles
│ ├── layout.tsx # App layout
│ └── page.tsx # Home page
├── components/
│ ├── ui/ # Reusable UI components
│ ├── Header.tsx # App header
│ ├── UnifiedContentList.tsx # Combined content list
│ ├── UnifiedContentCard.tsx # Universal content card
│ ├── TrendingTopics.tsx # Cross-source trend analysis
│ └── LoadingSkeleton.tsx # Loading states
├── lib/
│ └── utils.ts # Utility functions
├── vercel.json # Vercel configuration with RSS crons
└── package.json # Dependencies + RSS parser
GET /api/stories- Fetch latest Hacker News storiesGET /api/rss- Parse and fetch HackTheBox RSS feedsGET /api/content- Unified API combining both sources with filteringPOST /api/analyze- Get AI analysis for any content type or trendsGET /api/cron- Trigger content refresh (called by Vercel cron)
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Radix UI
- AI: OpenRouter with free GPT models (openai/gpt-oss-20b:free)
- Data Source: Hacker News Firebase API
- Deployment: Vercel
- Icons: Lucide React
- ⚡ Server-side rendering with Next.js App Router
- 🗄️ Intelligent caching (5-minute cache for stories)
- 🔄 Background refresh via cron jobs
- 📱 Responsive images and layouts
- ⚙️ Optimized bundle size
The app now uses OpenRouter with the free openai/gpt-oss-20b:free model, providing:
- Zero cost AI analysis
- Same OpenAI-compatible API
- High-quality GPT responses
- No usage limits for the free tier
When OpenRouter API key is provided:
- 📝 Story Summaries: AI-generated summaries of each story
- 😊 Sentiment Analysis: Positive/Neutral/Negative sentiment scoring
- 🎯 Key Points: Important highlights from each story
- 📊 Technical Level: Beginner/Intermediate/Advanced classification
- 🎲 Relevance Score: How relevant the story is to tech professionals
- 📈 Trend Analysis: Daily trends and emerging topics
Without API key:
- Uses intelligent mock analysis based on story metrics
- All features work with simulated data
- HackerNews Stories: Live fetching with community metrics
- 14 HackTheBox RSS Feeds: Real-time cybersecurity content
- Unified Feed: Seamless integration of both content types
- Source Filtering: Toggle HackerNews vs HackTheBox content
- Category Filtering: Red Team, Blue Team, AI/Security, Threat Intel, etc.
- Smart Categorization: AI-powered content classification
- Source-Specific Styling: Visual distinction between content types
- Responsive Design: Mobile and desktop optimized
- Real-time Updates: Live timestamps and refresh functionality
- Performance Optimized: Intelligent caching and lazy loading
- Content Summaries: AI-generated insights for any content type
- Sentiment Analysis: Automated mood and reception analysis
- Technical Classification: Beginner/Intermediate/Advanced scoring
- Cross-Source Trends: Combined trend analysis from all sources
- Vercel Optimized: Zero-config deployment
- Automatic Crons: 15-minute refresh cycles
- Error Handling: Graceful fallbacks and retry logic
- SEO-Friendly: Proper metadata and social sharing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
MIT License - see LICENSE file for details.
For issues or questions:
- Check the GitHub issues
- Create a new issue with details
- Include environment and error information
Built with ❤️ for the tech and cybersecurity community