- Renamed /intel to /discover
- Updated styles to match dark/cinematic landing page theme
- Updated Header, Footer, and Sitemap
- Added redirects from /intel and /tld-pricing to /discover
- Optimized SEO metadata for new paths
LISTINGS PAGE:
- Added missing Sparkles import
PORTFOLIO PAGE:
- Changed dropdown menu to open downward (top-full mt-1)
instead of upward for better visibility
SEO PAGE:
- Added cleanDomain() helper to sanitize input
- Removes whitespace, protocol, www, and trailing slashes
- Fixes 'hushen. app' -> 'hushen.app' input issue
PRICING PAGE:
- Removed accent highlight from 'TLDs Tracked' StatCard
All StatCards now have consistent styling without
green accent highlights.
PUBLIC TLD PRICING PAGE:
- Replaced manual HTML table with PremiumTable component
- Now matches Command Center table exactly
- Same columns: TLD, Trend, Buy, Renew, 1y, 3y, Risk
- Consistent row hover effects and styling
- Simplified sparkline component
- Preview row for non-authenticated users (first row unblurred)
- Blurred data for other rows when not logged in
COMMAND TLD PRICING PAGE:
- Removed Bell icon and alert functionality from actions column
- Cleaned up unused imports (Bell, Link)
- Actions column now only shows ChevronRight arrow
CONSISTENCY ACHIEVED:
- Both tables use identical column structure
- Same renewal trap indicators
- Same risk level dots (no emojis)
- Same trend sparklines
- Same price formatting
Changed links from /tld-pricing/{tld} to /command/pricing/{tld}:
- onRowClick handler in PremiumTable
- Bell icon link in actions column
This ensures authenticated users stay in the Command Center
when navigating to TLD detail pages.
BACKEND CHANGES (tld_prices.py):
- Added get_min_renewal_price() and get_avg_renewal_price() helpers
- Added calculate_price_trends() with known TLD trends:
- .ai: +15%/1y, +45%/3y (AI boom)
- .com: +7%/1y, +14%/3y (registry increases)
- .xyz: -10%/1y (promo-driven)
- etc.
- Added calculate_risk_level() returning low/medium/high + reason
- Extended /overview endpoint to return:
- min_renewal_price
- avg_renewal_price
- price_change_7d, price_change_1y, price_change_3y
- risk_level, risk_reason
FRONTEND CHANGES:
- Updated api.ts TldOverview interface with new fields
- Command Center /command/pricing/page.tsx:
- Now uses api.getTldOverview() instead of simulated data
- getRiskInfo() uses backend risk_level/risk_reason
- Public /intelligence/page.tsx:
- Same updates - uses real backend data
This ensures TLD Pricing works correctly:
- Public page: Real data + blur for premium columns
- Command Center: Real data with all columns visible
- Admin: TLD Pricing tab with correct stats