A streamlined Next.js web application for analyzing HackerOne security reports with AI-powered insights via n8n workflows, featuring glassmorphism design and real-time updates.
- π Secure Authentication: Email/password authentication with Supabase
- π Report Analysis: Submit HackerOne report URLs for automated analysis
- π€ AI Integration: Pure n8n webhook-based AI processing with real-time updates
- π« Modern UI: Glassmorphism design with dark theme and neon accents
- π± Responsive: Mobile-first design that works on all devices
- β‘ Real-time: Live status updates and instant result display
- π¨ Beautiful Design: Production-ready UI with smooth animations
- Frontend: Next.js 13+ (App Router), TypeScript, Tailwind CSS
- Backend: Next.js API Routes, n8n Webhooks, Supabase PostgreSQL
- Authentication: Supabase Auth
- UI Components: shadcn/ui with custom glassmorphism styling
- Icons: Lucide React
- Database: PostgreSQL with Row Level Security (RLS)
- AI Processing: n8n workflow automation with webhook integration
βββ app/ # Next.js App Router pages
β βββ api/submit/route.ts # API endpoint for URL submission
β βββ api/webhook/route.ts # Webhook endpoint for n8n results
β βββ analysis/[id]/page.tsx # Analysis results page
β βββ dashboard/page.tsx # Main dashboard
β βββ login/page.tsx # Authentication page
β βββ layout.tsx # Root layout
β βββ page.tsx # Landing page
β βββ globals.css # Global styles with glassmorphism
βββ components/ # Reusable React components
β βββ ui/ # shadcn/ui components
β βββ Auth.tsx # Login/signup forms
β βββ UrlInputForm.tsx # URL submission form
β βββ SubmissionList.tsx # List of submissions
β βββ AnalysisView.tsx # Analysis results display
βββ lib/ # Utility functions
β βββ supabase.ts # Supabase client configuration
β βββ utils.ts # General utilities
βββ supabase/ # Database schema and migrations
β βββ migrations/ # Database migration files
βββ README.md # This file
- Node.js 18+ and npm
- Supabase account
- n8n instance with webhook capabilities
git clone <repository-url>
cd hackerone-insight
npm install- Create a new Supabase project at supabase.com
- Go to Settings > API to get your project URL and anon key
- In the Supabase SQL Editor, run the migration from
supabase/migrations/
Copy .env.example to .env.local and fill in your values:
cp .env.example .env.localUpdate the values in .env.local:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
# N8N Webhook Configuration (required)
N8N_WEBHOOK_URL=https://your-n8n.com/webhook/hacker-report
N8N_TOKEN=your-webhook-token
# App Configuration
NEXT_PUBLIC_APP_NAME=HackerOneInsightnpm run devOpen http://localhost:3000 to see the application.
Set up your n8n workflow with the following components:
- URL: Your n8n webhook URL
- Authentication: Bearer token
- Payload: Receives submission data from the app
Expected payload from app:
{
"submission_id": "uuid",
"url": "https://hackerone.com/reports/123456",
"user_id": "uuid"
}- Process the HackerOne report URL
- Extract and analyze security information
- Generate structured output
- URL:
https://your-app.com/api/webhook - Method: POST
- Authentication: Bearer token (same as N8N_TOKEN)
- Payload: Send analysis results back to app
Required payload to app:
{
"submission_id": "uuid",
"status": "done", // or "failed"
"result": {
"summary": "Analysis summary text",
"techniques": [
{
"name": "Technique name",
"description": "Technique description"
}
],
"pro_tip": "Professional recommendation",
"confidence": "high" // or "medium", "low"
}
}The application uses two main tables:
- Stores submitted HackerOne report URLs
- Tracks processing status (queued, in_progress, done, failed)
- Links to the user who submitted it
- Stores analysis results from n8n processing
- Contains structured data: summary, techniques, pro tips, confidence
- Links to the original submission
Both tables have Row Level Security (RLS) policies to ensure users can only access their own data.
Handles URL submission:
- Validates the HackerOne URL format
- Authenticates the user session
- Creates a submission record in the database
- Triggers the n8n webhook (if configured)
- Returns the submission ID
Receives results from n8n:
- Validates the webhook token
- Updates submission status
- Saves analysis results to database
- Triggers real-time updates via Supabase
The application uses a custom glassmorphism design system with:
- Glass Cards: Semi-transparent backgrounds with backdrop blur
- Neon Accents: Cyan and purple gradient highlights
- Dark Theme: Black/charcoal backgrounds
- Smooth Animations: Hover states and transitions
- Responsive Layout: Mobile-first approach
Key CSS classes:
.glass-card: Main glassmorphism effect.border-neon: Neon border styling.neon-button: Gradient button with glow effects.glass-input: Transparent input fields
User β Submit URL β App API β n8n Webhook β AI Processing β Result Webhook β App β Real-time Update β User
- User submits HackerOne report URL
- App validates and stores submission (status: queued)
- n8n webhook receives submission data
- AI agents process the report in n8n
- Results webhook sends analysis back to app
- App updates database and shows results
- Real-time updates notify user of completion
- Row Level Security: Database-level access control
- JWT Authentication: Secure session management with Supabase
- URL Validation: Server-side validation of HackerOne URLs
- HTTPS Only: Secure communication for all API calls
- Environment Variables: Sensitive data stored securely
- Webhook Authentication: Bearer token validation for n8n communication
The application is configured for static export and can be deployed to:
- Vercel (recommended for Next.js)
- Netlify
- Any static hosting provider
Build for production:
npm run buildA complete n8n workflow template is available that includes:
- Webhook trigger for receiving submissions
- AI processing nodes for report analysis
- Result webhook for sending data back
- Error handling and status updates
Contact the development team for the workflow template file.
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit changes:
git commit -m 'Add feature' - Push to branch:
git push origin feature-name - Submit a pull request
This project is licensed under the MIT License.
For questions or support, please contact the development team or create an issue in the repository.