| 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
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 toggles
medium (8-24h): Multi-step flows, 3rd-party integrations, dashboards
complex (24-80h): Real-time collab, ML/AI, custom engines
- See references/cost-estimation.md for detailed rubrics
-
Store in database:
INSERT INTO competitors (name, url) VALUES ('Acme', 'https://acme.com');
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');
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