Loading repository data…
Loading repository data…
ranit004 / repository
XLook – AI-powered URL safety checker that detects phishing, malware, and fake links in real time. Analyze any link instantly with threat intelligence, WHOIS lookup, domain age check, SSL inspection, and advanced AI analysis – all in a modern, beautifully designed web app.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
XL👀k (pronounced "X-Look") is a cutting-edge URL safety analysis platform designed to protect users from malicious websites, phishing attacks, and online threats. Our mission is to make the internet safer by providing instant, comprehensive security analysis of any URL before users visit potentially dangerous websites.
XL👀k provides instant, multi-layered security analysis using industry-leading threat intelligence APIs, giving users the confidence to browse safely with real-time threat detection and comprehensive security reports.
// Modern React 19 with Next.js 15 App Router
├── Framework: Next.js 15.3.5 (App Router)
├── Language: TypeScript 5 (100% type coverage)
├── Styling: Tailwind CSS 4 + Custom Design System
├── UI Components: Radix UI (Accessible, Unstyled)
├── Icons: Lucide React (Optimized SVGs)
├── Animation: Framer Motion (Smooth transitions)
├── State Management: React Context + Custom Hooks
├── Theme: Next-themes (Dark/Light mode support)
└── Performance: Bundle optimization + Code splitting
// Serverless API with robust authentication
├── Runtime: Node.js 20 (Vercel Edge Runtime)
├── API Design: RESTful endpoints with Next.js API routes
├── Authentication: JWT + httpOnly cookies (XSS protection)
├── Password Security: bcrypt with 12 salt rounds
├── Database: MongoDB Atlas + Mongoose ODM
├── Fallback Storage: In-memory user storage
├── Rate Limiting: Built-in abuse protection
└── Error Handling: Comprehensive logging + graceful degradation
Security APIs:
- VirusTotal: 70+ antivirus engine scanning
- Google Safe Browsing: Phishing/malware detection
- IPInfo: Geolocation and IP reputation
- OpenAI: AI-powered threat analysis
Database:
- MongoDB Atlas: Primary data storage
- Memory Storage: High-availability fallback
- Connection Caching: Serverless optimization
Deployment:
- Vercel: Edge deployment (20+ regions)
- GitHub: Version control + CI/CD
- Environment Management: Secure variable handling
graph TD
A[Landing Page] --> B{URL Input}
B --> C[Security Analysis]
C --> D[Results Dashboard]
D --> E{Sign Up Prompt}
E --> F[Registration]
F --> G[Full Access]
graph TD
A[Login] --> B[Dashboard]
B --> C[URL Analysis]
C --> D[Detailed Reports]
D --> E[History Tracking]
E --> F[Export Options]
// bcrypt implementation with salt rounds
const saltRounds = 12;
const hashedPassword = await bcrypt.hash(password, saltRounds);
// Password strength requirements:
- Minimum 8 characters
- At least one uppercase letter
- At least one lowercase letter
- At least one number
- At least one special character
// Secure token configuration
const jwtConfig = {
secret: process.env.JWT_SECRET, // 256-bit secret
expiresIn: '30d',
algorithm: 'HS256'
};
// httpOnly cookie settings
const cookieOptions = {
httpOnly: true, // XSS protection
secure: true, // HTTPS only
sameSite: 'strict', // CSRF protection
maxAge: 30 * 24 * 60 * 60 * 1000 // 30 days
};
VirusTotal Integration
Google Safe Browsing
IP Reputation Analysis
AI-Powered Analysis
enum ThreatLevel {
SAFE = 'safe', // Green - No threats detected
WARNING = 'warning', // Yellow - Suspicious activity
DANGER = 'danger' // Red - Confirmed threats
}
interface ThreatAnalysis {
overall: ThreatLevel;
virusTotal: SecurityCheck;
safeBrowsing: SecurityCheck;
ipAnalysis: IpCheck;
aiAnalysis: AiInsights;
riskScore: number; // 0-100 risk rating
}
// User access levels
enum UserPlan {
FREE = 'free', // 10 checks per day
PREMIUM = 'premium', // 100 checks per day
PRO = 'pro' // Unlimited checks
}
interface UserProfile {
id: string;
email: string;
name: string;
plan: UserPlan;
checksToday: number;
totalChecks: number;
createdAt: Date;
lastActive: Date;
}
Lighthouse Scores:
Performance: 95/100
Accessibility: 100/100
Best Practices: 100/100
SEO: 95/100
Real-World Metrics:
First Contentful Paint: <1.2s
Largest Contentful Paint: <2.0s
Cumulative Layout Shift: <0.1
First Input Delay: <100ms
Time to Interactive: <3.0s
# GitHub Actions Workflow
name: Deploy to Vercel
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Build application
run: npm run build
- name: Deploy to Vercel
uses: vercel/action@v1
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.ORG_ID }}
vercel-project-id: ${{ secrets.PROJECT_ID }}
// Environment configuration
const config = {
development: {
mongoUri: 'mongodb://localhost:27017/xlook-dev',
apiKeys: { /* development keys */ }
},
staging: {
mongoUri: process.env.MONGO_URI_STAGING,
apiKeys: { /* staging keys */ }
},
production: {
mongoUri: process.env.MONGO_URI,
apiKeys: { /* production keys */ }
}
};
// vercel.json configuration
{
"version": 2,
"env": {
"NODE_ENV": "production",
"MONGO_URI": "@mongo-uri",
"JWT_SECRET": "@jwt-secret",
"VIRUSTOTAL_API_KEY": "@virustotal-key",
"GOOGLE_SAFE_BROWSING_API_KEY": "@safe-browsing-key"
},
"regions": ["iad1", "sfo1", "lhr1", "hnd1"],
"functions": {
"src/app/api/**": {
"runtime": "nodejs20.x",
"maxDuration": 30
}
}
}
User Engagement:
- Daily Active Users: Target 1,000+
- URL Checks per Day: Target 10,000+
- User Retention Rate: Target 80%+
- Average Session Duration: Target 3+ minutes
Technical Performance:
- API Response Time: <500ms (95th percentile)
- Uptime: 99.9% SLA
- Error Rate: <0.1%
- Security Scan Accuracy: 99.5%+
Business Growth:
- Monthly Recurring Revenue: Tracking
- Customer Acquisition Cost: Optimizing
- Lifetime Value: Measuring
- Market Penetration: Expanding