name: competitor-analysis description: Scrape competitor websites to extract features and estimate reimplementation costs in developer hours. Store results in SQLite/Turso for visualization. Use when analyzing competitor products, extracting feature lists from URLs, estimating development effort, or building competitive intelligence databases.
Competitor Analysis
Extract features from competitor websites and estimate reimplementation costs.
Workflow
Initialize database (first time only)
python scripts/init_db.py <path>.db # or for Turso: python scripts/init_db.py libsql://your-db.turso.io --token <TOKEN>Scrape competitor URL(s) using WebFetch tool
Extract features from page content:
- Identify distinct product capabilities
- Note feature name, description, source URL
- Assign category (core/integration/ui-ux/security/analytics/collaboration/automation/admin)
Estimate complexity for each feature:
simple(2-8h): Standard CRUD, basic UI, config togglesmedium(8-24h): Multi-step flows, 3rd-party integrations, dashboardscomplex(24-80h): Real-time collab, ML/AI, custom engines- See references/cost-estimation.md for detailed rubrics
Store in database:
-- Add competitor INSERT INTO competitors (name, url) VALUES ('Acme', 'https://acme.com'); -- Add feature INSERT INTO features (competitor_id, name, description, category_id, complexity, estimated_hours_min, estimated_hours_max, source_url) VALUES (1, 'Real-time notifications', 'Push notifications across devices', (SELECT id FROM categories WHERE name = 'core'), 'medium', 12, 20, 'https://acme.com/features'); -- Log analysis run INSERT INTO analysis_runs (competitor_id, urls_analyzed, features_found) VALUES (1, '["https://acme.com/features"]', 15);Query results:
SELECT * FROM feature_summary WHERE competitor_name = 'Acme'; SELECT * FROM competitor_cost_summary;Generate interactive dashboard:
python scripts/generate_dashboard.py <path>.db [output_dir] [--serve]Opens browser with feature selection UI. Select features, filter by category/complexity, export as JSON/CSV.
Database Schema
| Table | Purpose |
|---|---|
competitors |
Company name, URL, timestamps |
categories |
Feature categories (seeded with defaults) |
features |
Extracted features with complexity and hour estimates |
analysis_runs |
Tracks scraping sessions |
feature_summary |
View joining features with competitor/category names |
competitor_cost_summary |
View with aggregated hour totals per competitor |
Output Example
After analyzing a competitor:
Competitor: Acme Corp (https://acme.com)
Features found: 23
| Feature | Category | Complexity | Hours (min-max) |
|---------|----------|------------|-----------------|
| SSO/SAML | security | complex | 32-48 |
| Dashboard builder | analytics | complex | 40-60 |
| Slack integration | integration | medium | 12-20 |
| Dark mode | ui-ux | simple | 4-6 |
Total estimate: 280-420 hours