Changes:
- Fixed hover/tooltip issue: Tooltips now only trigger on the specific element, not the entire row.
- Added explicit 'Details' link to TLD table in INTEL view.
- Added clickable TLD badges in INTEL view.
- Standardized Tooltip implementation across all views.
- Ensured consistent 'Award-Winning' style for all interactive elements.
Changes:
- TerminalLayout:
- Added 'hideHeaderSearch' prop to remove top bar elements
- Header is now non-sticky and transparent when search is hidden for seamless integration
- RADAR (Dashboard):
- Removed top bar search/shortcuts
- Implemented 'Hero Style' Universal Search:
- Floating design with backdrop blur
- Dynamic emerald glow on focus
- Animated icons and clean typography
- Integrated results dropdown
- Content flows seamlessly from top
- MARKET:
- Integrated header into content (removed sticky behavior)
- Removed duplicate search/shortcuts from top bar
Changes:
- MARKET: Re-introduced 'Emerald Glow' background effect (Landing Page style)
- NAVIGATION: Complete redesign of Sidebar to match Award-Winning style
- Darker, cleaner background (zinc-950)
- Ultra-thin borders (white/5)
- New active state: subtle emerald glow line + text color (no blocky backgrounds)
- Simplified Logo section
- Modernized User Profile card
Changes:
- Added custom animated Tooltip component for Low Noise / High Density
- Tooltips added to: Score, Price, Time, Source, Actions, Headers
- Redesigned 'Monitor' button:
- Changed icon to 'Eye' (Watch)
- Made it round and distinct from primary action
- Added significant spacing (mr-4) from 'Buy' button
- Enhanced Mobile UX:
- Larger touch targets (h-9 to h-10 equivalents)
- Better button active states (scale-95)
- General Polish:
- Refined hover states and shadows
- Improved accessibility with cursor hints
Changes:
- Redesigned Metric Grid with trend indicators
- New separated Control Bar for search & filters
- High-end Data Grid with ultra-thin borders and hover effects
- Custom SVG 'Score Ring' component for Pounce Score
- Modern typography and spacing
- Removed 'clutter' badges, replaced with minimal indicators
- All columns now sortable (Domain, Score, Price, Time, Source)
- Click column header to sort asc/desc
- New professional header with icon, title, and live stats
- Cleaner, more compact design
- Better mobile responsiveness
- Improved filter bar layout
- Removed old folders: dashboard, pricing, auctions, marketplace, portfolio, alerts, seo
- Removed CommandCenterLayout.tsx (replaced by TerminalLayout)
- Fixed all internal links to use new terminal routes
- Updated keyboard shortcuts for new module names
- Fixed welcome page next steps
- Fixed landing page feature links
- Fixed radar page stat cards and links
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.
COMMAND CENTER HEADER:
- Changed from fixed h-16/h-18 to py-5/py-6 for more breathing room
- More vertical padding gives titles more presence
LANDING PAGE HERO SECTION:
- Reduced top padding from pt-32/40/48 to pt-24/32/36
- Smaller puma logo: w-32/40/48 (was w-40/52/64)
- Smaller headline: 2rem-4rem (was 2.5rem-6.5rem)
- More compact spacing overall
- Reduced max-width from 5xl to 4xl for better focus
DOMAIN CHECKER (more prominent):
- Removed px-4 wrapper, full max-w-2xl
- Always-visible glow effect (opacity-60, opacity-100 on focus)
- Larger padding: py-5/6 (was py-4/5)
- Ring-2 on focus (was ring-1)
- Shadow-2xl with accent shadow
- Button: bg-accent instead of bg-foreground
- Button text: 'Hunt' instead of 'Check'
- Larger icons on desktop
- Accent-colored example domains
- Added glow wrapper in landing page
RESULT:
- Search field is now the visual center of the hero
- More compact, action-focused above-the-fold
- Better hierarchy: logo → headline → search
LAYOUT CHANGES:
1. CommandCenterLayout header now uses max-w-7xl:
- Header width matches content width exactly
- Added mx-auto for centering
- Cleaner, more consistent visual alignment
2. Main content area:
- max-w-7xl and centering now in layout wrapper
- Consistent padding: py-6 sm:py-8
3. PageContainer simplified:
- Removed max-w-7xl mx-auto (now in parent)
- Just provides space-y-6 for child spacing
4. Header bar improvements:
- Slightly reduced height: h-16 sm:h-18
- Better button styling (hover states)
- Truncation for long titles on mobile
- Icons slightly larger for better visibility
RESULT:
All Command Center pages now have perfectly aligned
header and content with the same max-width (max-w-7xl).
PROBLEM: Redirect parameters were getting lost during user flows
FIXES APPLIED:
1. Register Page:
- Default redirect: /command/dashboard (was /dashboard)
- Stores redirect in localStorage before email verification
- Preserves redirect when linking to login page
2. Login Page:
- Checks localStorage for stored redirect (from registration)
- Clears stored redirect after successful login
- Uses useState for dynamic redirect handling
3. OAuth Callback:
- Default redirect: /command/dashboard (was /dashboard)
- Backend OAuth endpoints also updated
4. Fixed all /dashboard → /command/dashboard links:
- pricing/page.tsx
- page.tsx (landing page)
- AdminLayout.tsx
- DomainChecker.tsx
- command/dashboard/page.tsx
- Header.tsx (simplified check)
5. Backend OAuth:
- Default redirect_path: /command/dashboard
NEW USER JOURNEY:
Pricing → Register → Email Verify → Login → Pricing → Stripe
↓
Welcome Page
↓
Dashboard
The redirect is preserved throughout:
- Query param ?redirect=/pricing passed through register/login
- Stored in localStorage during email verification gap
- Cleaned up after successful login
STRIPE FLOW CLARIFICATION:
- Stripe does NOT create users
- Users must register FIRST with email/password
- Then they can upgrade via Stripe checkout
- This is by design for security and flexibility
NEW WELCOME PAGE (/command/welcome):
- Celebratory confetti animation on arrival
- Plan-specific welcome message (Trader/Tycoon)
- Features unlocked section with icons
- Next steps with quick links to key features
- Link to documentation and support
UPDATED USER JOURNEY:
1. Pricing Page (/pricing)
↓ Click plan button
2. (If not logged in) → Register → Back to Pricing
↓ Click plan button
3. Stripe Checkout (external)
↓ Payment successful
4. Welcome Page (/command/welcome?plan=trader)
- Shows unlocked features
- Guided next steps
↓ 'Go to Dashboard'
5. Dashboard (/command/dashboard)
CANCEL FLOW:
- Stripe Cancel → /pricing?cancelled=true
- Shows friendly banner: 'No worries! Card not charged.'
- Dismissible with X button
- URL cleaned up automatically
BACKEND UPDATES:
- Default success URL: /command/welcome?plan={plan}
- Default cancel URL: /pricing?cancelled=true
- Portal return URL: /command/settings (not /dashboard)
This creates a complete, professional onboarding experience
that celebrates the upgrade and guides users to get started.
CHANGED font-display → font-semibold:
Command Center Pages:
- alerts/page.tsx: Matches count, notifications, modal title
- marketplace/page.tsx: Listing price
- portfolio/page.tsx: Valuation price
- listings/page.tsx: Price display, modal titles (2)
- seo/page.tsx: Feature title, SEO score, backlinks count
Components (used in Command Center):
- CommandCenterLayout.tsx: Page title
- AdminLayout.tsx: Page title
- PremiumTable.tsx: StatCard value
KEPT serif font (as requested):
- Sidebar.tsx: POUNCE logo only
- Header.tsx: POUNCE logo (public pages)
- Footer.tsx: POUNCE logo
Now the Command Center uses only sans-serif fonts,
with the exception of the POUNCE logo in the navigation.
BEST VALUE LOGIC:
- 'Best' badge only shown when:
1. Cheapest registration price AND
2. No renewal trap (renewal <= 1.5x registration)
- New 'Cheap Start' badge for cheapest with renewal trap
Shows warning: 'Cheapest registration but high renewal costs'
TOOLTIPS ADDED:
Stats Cards:
- Buy (1y): 'Lowest first-year registration price...'
- Renew (1y): 'Annual renewal price after first year'
or 'Warning: Renewal is Xx the registration price'
- 1y Change: 'Price change over the last 12 months'
- 3y Change: 'Price change over the last 3 years'
Registrar Table Headers:
- Register: 'First year registration price'
- Renew: 'Annual renewal price'
- Transfer: 'Transfer from another registrar'
Registrar Table Cells:
- Registration price: 'First year: $X.XX'
- Renewal price: 'Annual renewal: $X.XX' or trap warning
- Transfer price: 'Transfer from another registrar: $X.XX'
- AlertTriangle icon: 'Renewal trap: Xx registration price'
- Best badge: 'Best overall value: lowest registration...'
- Cheap Start badge: 'Cheapest registration but high renewal...'
- Visit link: 'Register at {registrar}'
Applied to both:
- /command/pricing/[tld] (Command Center)
- /tld-pricing/[tld] (Public)
REMOVED:
- Alert/Notify button from both pages
- Bell icon and handleToggleAlert functions
- alertEnabled, alertLoading state
ADDED (matching table columns):
- Buy Price (1y) - was already there
- Renewal (1y) with trap warning
- 1y Change with color coding
- 3y Change with color coding
- Risk Assessment with badge (dot + reason text)
COMMAND CENTER (/command/pricing/[tld]):
- StatCards: Buy, Renew, 1y Change, 3y Change
- Risk Assessment section with badge
- Renewal Trap warning when ratio > 2x
- Real chart data from history.history API
PUBLIC (/tld-pricing/[tld]):
- Same stats in Quick Stats grid
- Risk Assessment for authenticated users
- Shimmer placeholders for non-authenticated
- Real chart data from history.history API
Both pages now show ALL info from the overview table:
✅ TLD name
✅ Trend (chart + badge)
✅ Buy (1y)
✅ Renew (1y) with trap
✅ 1y Change
✅ 3y Change
✅ Risk Level + Reason
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
1. Portfolio dropdown menu:
- Changed from 'top-full' to 'bottom-full'
- Menu now opens upward to not get cut off by table
2. Removed green accent highlighting from StatCards:
- Portfolio: Expiring Soon
- Watchlist: Available
- Auctions: Ending Soon
- Marketplace: Verified Sellers
- Alerts: Active Alerts
SIMPLIFIED STATS:
- Removed: Total Invested, Est. Value, Profit/Loss
- Added: Expiring Soon (domains expiring in 30 days)
- Added: Need Attention (domains with health issues)
- Kept: Total Domains, Listed for Sale
SIMPLIFIED TABLE:
- Domain column: name + registrar
- Added column: simple date added
- Expires column: with color-coded expiry warnings (30d, expired)
- Health column: quick health status
- Actions: Three-dot dropdown menu
THREE-DOT MENU:
├── Health Check
├── Edit Details
├── ─────────────
├── List for Sale (accent color)
├── Visit Website
├── ─────────────
├── Record Sale
└── Remove (danger)
SIMPLIFIED SUBTITLE:
- Shows domain count + expiring soon count
- No more profit/loss display
This focuses on reliable, actionable data:
✅ Domain names (100% accurate)
✅ Expiry dates (user input)
✅ Health status (real-time check)
❌ Valuations (unreliable estimates)
❌ Profit/Loss (depends on estimates)
API FIX:
- quickHealthCheck now uses POST method (was GET)
- Fixes 'int_parsing' error for domain_id
PORTFOLIO UX:
1. Health Check now works correctly with POST /domains/health-check
2. Clear separation of List vs Sell:
- 'List' button → Opens listing form (marketplace)
- 'Sold?' button → Records completed sale (P&L tracking)
3. Improved Valuation Modal:
- Shows 'Pounce Score Estimate' instead of just 'Estimated Value'
- Color-coded confidence badge (high/medium/low)
- Clear disclaimer about algorithmic estimate
4. Record Sale Modal:
- Clear explanation of purpose (P&L tracking)
- Hint to use 'List' button for marketplace
LISTINGS PAGE:
- Accepts ?domain= query parameter
- Auto-opens create modal with prefilled domain
- Seamless flow from Portfolio → List on Marketplace