256 Commits

Author SHA1 Message Date
674a0f0219 fix: Revert to dots instead of icons, use accent green, fix max-width
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
DASHBOARD:
- Reverted status icons to simple dots with pulse animation
- Changed max-width from 5xl to 7xl (matching tld-pricing)
- All colors back to accent/green (no cyan/emerald/etc)
- Stats cards use accent color for positive values
- Monitoring domains show pulsing green dot
- Added proper spacing (pt-28/32, pb-20/24)

SETTINGS:
- Updated to match dashboard style (max-w-7xl)
- Same padding and spacing
- rounded-2xl for modern look
- Accent green for highlights
- Pulsing dots for active alerts
- Consistent border and bg colors
2025-12-09 09:30:37 +01:00
5360c4938c feat: Enhanced domain status icons with color coding + UI polish
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
STATUS ICONS:
- CircleCheck (emerald) = Available - ready to hunt
- Radio (cyan, pulsing) = Monitoring - actively watching
- CircleAlert (amber, pulsing) = Expiring soon - urgent
- CircleX (gray) = Registered - taken

VISUAL IMPROVEMENTS:
- Status icons with colored backgrounds and ring effects
- Pulsing animation for monitoring and expiring domains
- Stats cards with vibrant color accents (emerald, cyan, amber, violet)
- Icon badges in stat cards for better visual hierarchy
- Gradient quick-links section
- Increased max-width consistency (max-w-5xl)
- More padding (pt-28/32, pb-20/24)
- Rounded-2xl for modern card look
- Hover effects with color transitions

COLORS:
- Emerald for positive/available
- Cyan for monitoring/active
- Amber for warnings/expiring
- Violet for investments
- Rose for negative/loss
2025-12-09 09:23:33 +01:00
b1d6e92590 refactor: Restore classic Command Center style with modern touches
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
DESIGN CHANGES:
- Restored table-based domain list for cleaner data display
- Simpler header without large hero section
- Compact stats row with modern rounded corners
- Clean tab navigation with pill style
- Kept all functionality intact
- Modern modals with blur backdrop
- Subtle hover effects on table rows
- Clean typography hierarchy

This returns to the original minimalist style while keeping
modern UI improvements like rounded corners and subtle gradients.
2025-12-09 09:17:52 +01:00
b2c773b94c feat: Complete Command Center redesign + fix notify API
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
DASHBOARD REDESIGN (Award-winning UI):
- New hero section with gradient icon and tier badge
- Modern stats grid with gradient backgrounds
- Redesigned domain cards with improved spacing
- Better visual hierarchy and typography
- Smooth animations and transitions
- Quick links section at bottom
- Redesigned all modals with rounded corners
- Better color system for ROI indicators
- Improved mobile responsiveness

API FIX:
- Fixed PATCH /domains/{id}/notify endpoint
- Now accepts body with 'notify' field instead of query param
- Resolves 422 Unprocessable Entity error

UI IMPROVEMENTS:
- Added BellOff icon for disabled notifications
- Better loading states with descriptive text
- Improved empty states with larger icons
- Gradient backgrounds for positive/negative values
- Better button hover states
2025-12-09 09:13:51 +01:00
2214d65f15 docs: Complete cron job documentation in README
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
SCHEDULER DOCUMENTATION:
- Built-in APScheduler runs automatically with backend
- 4 scheduled jobs: Domain check, TLD scrape, Auctions, Price alerts
- Optional external cron commands for production
- PM2 recommended setup for production
- Summary table of all cron jobs
2025-12-09 08:57:54 +01:00
37bb4c5a3d Add local development setup instructions to README
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
- Added important notice about database initialization after fresh clone
- Added TLD price scraping command (886+ TLDs from Porkbun)
- Added auction scraping command
- Explains what happens without these steps (only 18 TLDs, 0 auctions)
- Notes that scheduler auto-scrapes daily/hourly
2025-12-09 08:44:52 +01:00
9fde9eab4a Fix subscription tier and domain_limit issues
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
- Changed SubscriptionTier.STARTER to SCOUT (correct tier name)
- Removed domain_limit from Subscription constructor (it's a computed property)
- Database needs to be re-initialized with: python scripts/init_db.py && python scripts/seed_tld_prices.py
2025-12-09 08:41:45 +01:00
613a913a3d Add Next.js API rewrite proxy
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
- Added rewrites() in next.config.js to proxy /api/v1/* to backend
- Works regardless of whether Nginx is in front or external proxy goes directly to Next.js
- Disabled standalone output for non-Docker deployments
2025-12-09 08:29:31 +01:00
c11d34f21e Fix CORS: Load .env file in main.py
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
- Added dotenv load_dotenv() at startup to ensure ALLOWED_ORIGINS env var is loaded
- This fixes CORS errors when accessing from https://pounce.ch
2025-12-09 08:21:58 +01:00
db8cc399ef Make API URL dynamic based on hostname
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
- localhost/127.0.0.1 → http://localhost:8000/api/v1
- Local network IPs → http://{hostname}:8000/api/v1
- Production domains → https://{hostname}/api/v1 (requires reverse proxy)
2025-12-09 08:09:46 +01:00
ca5f2739db Fix TypeScript errors in auctions, dashboard, and api
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
- Made Auction.valuation optional (API doesn't always return it)
- Fixed domain.notify to domain.notify_on_available in dashboard
- Changed api.request from private to protected for inheritance
2025-12-09 07:44:36 +01:00
ff67fded34 Fix: Remove trailing whitespace 2025-12-09 07:26:52 +01:00
c10e094ed4 docs: Comprehensive startup guide + troubleshooting
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
README UPDATES:
- Added Quick Start section at the top with 2-command startup
- Documented common console warnings (SES, PostHog, CSS prefixes)
- Explained what errors actually need fixing
- Three startup options: Two terminals, start.sh, PM2
- Step-by-step manual setup with verification
- Application URLs table

IMPORTANT: Backend must be running for CORS errors to disappear!
2025-12-08 16:56:45 +01:00
163c8d6ec7 feat: Server deployment scripts + Database init
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
NEW FILES:
- deploy.sh: One-command setup script (installs deps, creates venv, init db)
- start.sh: Quick start script (launches both backend & frontend)
- backend/scripts/init_db.py: Database initialization with schema + seed data

CHANGES:
- README: Added one-command setup instructions
- All scripts made executable

SERVER DEPLOYMENT:
1. git pull
2. chmod +x deploy.sh && ./deploy.sh
3. ./start.sh (or use PM2/Docker)

The init_db.py script:
- Creates all database tables
- Seeds basic TLD info (com, net, org, io, etc.)
- Works with both SQLite and PostgreSQL
2025-12-08 16:54:14 +01:00
0de9648b49 fix: Database schema + Remove careers page
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
DATABASE:
- Recreated database tables with all columns (stripe_customer_id, is_admin)
- Fixed login 500 error

REMOVED:
- Careers page deleted
- Careers link removed from Footer

UPDATED:
- Footer description: 'Domain intelligence for hunters. Track. Alert. Pounce.'
2025-12-08 16:51:15 +01:00
b795b809f1 fix: Backend import error + More Tone of Voice updates
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
BACKEND FIX:
- Added CurrentUserOptional alias to deps.py for backward compatibility

TONE OF VOICE UPDATES:
- Auctions: 'Live Auctions. One Feed. Strike first.'
- Careers: 'Build tools. For hunters.'
- Blog: 'The Hunt Report' - Market intel for hunters
- Settings: 'Your account. Your rules.'
- Forgot Password: Cleaner, direct copy
2025-12-08 16:48:36 +01:00
fde4f23663 feat: Complete Tone of Voice overhaul - The Hunter's Voice
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
🎯 BRAND VOICE: Swift, Sharp, Strategic, Confident

LANDING PAGE:
- Hero: 'Others wait. You pounce.'
- Features: Active, punchy descriptions
- Pricing: 'Pick your weapon.'
- CTAs: 'Hunt Free', 'Start Trading', 'Go Tycoon'

PRICING PAGE:
- Scout: 'Test the waters. Zero risk.'
- Trader: 'Hunt with precision.'
- Tycoon: 'Dominate the market.'

AUTH PAGES:
- Login: 'Back to the hunt.'
- Register: 'Join the hunt.'
- Benefits: 'Your hunting gear. Ready to go.'

EMAIL TEMPLATES:
- Domain Available: 'Time to pounce. [domain] just dropped'
- Price Alert: '.tld just moved.'
- Weekly Digest: 'Your week in domains.'
- Subscription: 'You're in. [Plan] unlocked.'

DASHBOARD:
- Title: 'Command Center'
- Empty State: 'No targets yet'

TLD PAGES:
- Headline: '886+ TLDs. Live Prices.'
- Section: 'Moving Now' instead of 'Trending'

CONTACT & ABOUT:
- About: 'Built for hunters. By hunters.'
- Mission: 'Level the playing field.'
- Contact: 'Let's Talk' - direct, confident

All text now follows the hunter metaphor with:
- Active verbs (Track, Hunt, Pounce, Grab)
- Urgency without panic
- Confident statements
- Data as proof
- Short, punchy sentences
2025-12-08 16:38:41 +01:00
df4d87a643 feat: Auto-admin for specific email + POUNCE branding
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
- guggeryves@hotmail.com automatically gets admin rights on registration
- Changed navigation logo from 'pounce' to 'POUNCE' (uppercase)
- Adjusted letter-spacing for better visual appearance
2025-12-08 16:10:58 +01:00
b5a0d17689 feat: Complete admin dashboard and improved navigation
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
Navigation Header:
- Playfair Display font for 'pounce' logo (explicit style)
- Perfect vertical centering with h-full on containers
- Consistent text sizes (0.8125rem / 13px)

Admin Dashboard (/admin):
- Overview tab: User stats, subscription breakdown, quick actions
- Users tab: Search, list, upgrade tier, toggle admin
- Newsletter tab: List subscribers, export emails
- TLD tab: Price data stats, trigger manual scrape
- System tab: Health status, environment info

Backend Admin API:
- Added is_admin field to User model
- Admin authentication via require_admin dependency
- GET /admin/stats - Dashboard statistics
- GET/PATCH/DELETE /admin/users - User management
- POST /admin/users/{id}/upgrade - Tier upgrades
- GET /admin/newsletter - Subscriber list
- GET /admin/newsletter/export - Email export
- POST /admin/scrape-tld-prices - Manual TLD scrape
- GET /admin/tld-prices/stats - TLD data statistics
- GET /admin/system/health - System health check
- POST /admin/system/make-admin - Initial admin setup

Frontend API:
- Added AdminApiClient with all admin endpoints
- getAdminStats, getAdminUsers, updateAdminUser
- upgradeUser, getAdminNewsletter, exportNewsletterEmails
- triggerTldScrape, getSystemHealth, makeUserAdmin
2025-12-08 16:05:53 +01:00
1efc7fe28e fix: TypeScript conflicts and improve navigation styling
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
TypeScript Fixes:
- Cleared TypeScript cache to resolve @types/node conflicts
- Reinstalled node_modules with fresh package-lock.json
- Removed duplicate type definitions from cache

Navigation Improvements:
- Logo uses Playfair Display font (same as titles)
- Consistent font-display class for 'pounce' wordmark
- Perfect vertical centering using flex + h-9 for all nav items
- Removed unused Image import
- Unified button/link heights (36px/h-9) for visual consistency
- Improved hover states with consistent sizing
2025-12-08 15:48:44 +01:00
225d720e8a feat: Configure all email services to use Zoho Mail
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
Email Service (email_service.py):
- Updated SMTP defaults for Zoho (smtp.zoho.eu:465)
- Added SSL support (use_ssl parameter) for port 465
- Updated send_email() to handle both SSL (port 465) and STARTTLS (port 587)
- Changed default sender from noreply@pounce.ch to hello@pounce.ch
- Updated contact email to hello@pounce.ch

Configuration Files:
- env.example: Complete Zoho configuration with SSL
- env.example.txt: Updated with Zoho defaults
- README.md: Updated email setup documentation with Zoho instructions

Zoho Configuration:
- Host: smtp.zoho.eu
- Port: 465 (SSL)
- SSL: true, TLS: false
- Sender: hello@pounce.ch

Supported Email Types:
- Domain availability alerts
- Price change notifications
- Subscription confirmations
- Password reset
- Email verification
- Contact form (send + confirmation)
- Newsletter welcome
- Weekly digests
2025-12-08 15:41:05 +01:00
9745d1851f feat: Replace navigation logo with bold text wordmark
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
- Removed puma image from header navigation
- Replaced with bold 'pounce' text wordmark
- Uses Playfair Display font (font-display)
- Responsive sizing: 1.5rem (mobile) to 1.75rem (desktop)
- Clean, minimal, professional appearance
- Removed unused Image import dependency
2025-12-08 15:35:38 +01:00
70c22247cb feat: Add PostHog analytics and improve domain input styling
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
PostHog Integration:
- Added PostHog analytics snippet to layout.tsx
- Project ID: phc_J0Ac94FAcsmbFj0CWOAqo9tGGSE4i9F4LXXfnN796gN
- API Host: https://eu.i.posthog.com
- Person profiles: identified_only

Domain Checker Styling:
- Changed input border from standard border to accent-colored ring
- Unfocused: ring-1 ring-accent/30 (thin green outline)
- Focused: ring-1 ring-accent/60 (brighter green)
- Matches puma logo accent color (#10b981)
- Smooth transitions for better UX
2025-12-08 15:33:41 +01:00
8d6c211ec0 feat: Update favicon and logo sizing
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
Favicon:
- Generated favicon.ico (32x32) from pounce-puma.png
- Created favicon-16x16.png and favicon-32x32.png
- Created apple-touch-icon.png (180x180)
- Created android-chrome-192x192.png and android-chrome-512x512.png
- Updated layout.tsx to reference new favicon files
- Updated site.webmanifest to use new Android icons

Landing Page Logo:
- Reduced puma logo size on hero section
- Mobile: w-32 (128px)
- Tablet: w-40 (160px)
- Desktop: w-48 (192px)
- Reduced glow effect for more elegant appearance
2025-12-08 15:31:35 +01:00
b641ab0b8f fix: Mobile optimization improvements
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
Settings Page:
- Horizontal scrollable tabs on mobile (< lg breakpoint)
- Vertical sidebar on desktop (lg+)
- Hide plan info card on mobile (visible in billing tab)

Header:
- Added Settings link in mobile menu for authenticated users

Global CSS:
- Added scrollbar-hide utility class
- Added smooth scrolling for touch devices
- Added touch-pan-x for horizontal scroll areas
- Removed tap highlight on mobile
- select-none utility class
2025-12-08 15:27:42 +01:00
3ae2ef45d9 feat: Complete all missing functional features
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
Dashboard Improvements:
- Portfolio: Sell Domain Modal mit Profit-Vorschau
- Portfolio: Edit Domain Modal für alle Felder
- Watchlist: Notification Toggle Button (Bell Icon)
- Neue Handler-Funktionen für alle Aktionen

New Pages:
- /settings - Profile, Notifications, Billing, Security
- /blog/[slug] - Blog Detail Page mit Share-Buttons
- /unsubscribe - Newsletter Unsubscribe Seite

Navigation Updates:
- Settings Icon im Header für eingeloggte User
- Unsubscribe Link im Footer (Legal Section)

API Additions:
- updateDomainNotify() für Watchlist-Benachrichtigungen
2025-12-08 15:07:12 +01:00
8de107f5ee feat: Complete all missing features
Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
Priorität 1 (Kritisch):
- Pricing Page: Stripe Checkout-Button mit API-Anbindung
- TLD Price Alert API + Frontend-Integration mit Toggle
- Blog Newsletter-Formular mit API-Anbindung

Priorität 2 (Wichtig):
- Favicon + Manifest.json für PWA-Support
- Dashboard: Stripe Billing Portal Link für zahlende Kunden
- Upgrade-Button für Scout-User

Priorität 3 (CI/CD):
- GitHub Actions CI Pipeline (lint, build, docker, security)
- GitHub Actions Deploy Pipeline (automated SSH deployment)

Neue Backend-Features:
- Price Alert Model + API (/api/v1/price-alerts)
- Toggle, Status-Check, CRUD-Operationen

Updates:
- README.md mit vollständiger API-Dokumentation
- Layout mit korrektem Manifest-Pfad
2025-12-08 14:55:41 +01:00
6b6ec01484 feat: Add missing features - Stripe payments, password reset, rate limiting, contact form, newsletter
Backend:
- Add Stripe API endpoints (checkout, portal, webhook) in subscription.py
- Add password reset (forgot-password, reset-password) in auth.py
- Add email verification endpoints
- Add rate limiting with slowapi
- Add contact form and newsletter API (contact.py)
- Add webhook endpoint for Stripe (webhooks.py)
- Add NewsletterSubscriber model
- Extend User model with password reset and email verification tokens
- Extend email_service with new templates (password reset, verification, contact, newsletter)
- Update env.example with all new environment variables

Frontend:
- Add /forgot-password page
- Add /reset-password page with token handling
- Add /verify-email page with auto-verification
- Add forgot password link to login page
- Connect contact form to API
- Add API methods for all new endpoints

Documentation:
- Update README with new API endpoints
- Update environment variables documentation
- Update pages overview
2025-12-08 14:37:42 +01:00
fc5f4b1633 fix: Add jinja2 and stripe to requirements.txt 2025-12-08 14:20:16 +01:00
88eca582e5 feat: Remove ALL mock data - real scraped data only
MOCK DATA REMOVED:
- Removed ALL hardcoded auction data from auctions.py
- Now uses real-time scraping from ExpiredDomains.net
- Database stores scraped auctions (domain_auctions table)
- Scraping runs hourly via scheduler (:30 each hour)

AUCTION SCRAPER SERVICE:
- Web scraping from ExpiredDomains.net (aggregator)
- Rate limiting per platform (10 req/min)
- Database caching to minimize requests
- Cleanup of ended auctions (auto-deactivate)
- Scrape logging for monitoring

STRIPE INTEGRATION:
- Full payment flow: Checkout → Webhook → Subscription update
- Customer Portal for managing subscriptions
- Price IDs configurable via env vars
- Handles: checkout.completed, subscription.updated/deleted, payment.failed

EMAIL SERVICE (SMTP):
- Beautiful HTML email templates with pounce branding
- Domain available alerts
- Price change notifications
- Subscription confirmations
- Weekly digest emails
- Configurable via SMTP_* env vars

NEW SUBSCRIPTION TIERS:
- Scout (Free): 5 domains, daily checks
- Trader (€19/mo): 50 domains, hourly, portfolio, valuation
- Tycoon (€49/mo): 500+ domains, realtime, API, bulk tools

DATABASE CHANGES:
- domain_auctions table for scraped data
- auction_scrape_logs for monitoring
- stripe_customer_id on users
- stripe_subscription_id on subscriptions
- portfolio_domain relationships fixed

ENV VARS ADDED:
- STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET
- STRIPE_PRICE_TRADER, STRIPE_PRICE_TYCOON
- SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD
- SMTP_FROM_EMAIL, SMTP_FROM_NAME
2025-12-08 14:08:52 +01:00
6323671602 feat: Transparent auction valuations & comprehensive SEO optimization
AUCTION VALUATIONS (Transparent):
- All auctions now include real-time valuation from ValuationService
- Shows: estimated_value, value_ratio, potential_profit, confidence
- Displays exact formula: "$50 × Length × TLD × Keyword × Brand"
- value_ratio helps identify undervalued domains (> 1.0 = opportunity)
- Added valuation_note in API response explaining methodology

VALUATION FORMULA EXPLAINED:
  Value = $50 × Length_Factor × TLD_Factor × Keyword_Factor × Brand_Factor

  Examples from API response:
  - healthtech.app: $50 × 1.0 × 0.45 × 1.3 × 1.32 = $40
  - blockchain.tech: $50 × 1.0 × 0.35 × 3.0 × 1.12 = $60
  - metaverse.ai: $50 × 1.6 × 1.2 × 3.0 × 1.1 = $315

SEO OPTIMIZATIONS:
- Root layout: Full Metadata with OpenGraph, Twitter Cards, JSON-LD
- JSON-LD Schema: Organization, WebSite, WebApplication with SearchAction
- robots.txt: Allows all crawlers including GPTBot, Claude, ChatGPT
- sitemap.ts: Dynamic sitemap with all pages + popular TLD pages
- Auctions layout: Page-specific meta + ItemList schema
- TLD Pricing layout: Product comparison schema

LLM OPTIMIZATION:
- robots.txt explicitly allows AI crawlers (GPTBot, Anthropic-AI, Claude-Web)
- Semantic HTML structure with proper headings
- JSON-LD structured data for rich snippets
- Descriptive meta descriptions optimized for AI summarization

FILES ADDED:
- frontend/src/lib/seo.ts - SEO configuration & helpers
- frontend/src/app/sitemap.ts - Dynamic sitemap generation
- frontend/src/app/auctions/layout.tsx - Auctions SEO
- frontend/src/app/tld-pricing/layout.tsx - TLD Pricing SEO
- frontend/public/robots.txt - Crawler directives
2025-12-08 13:57:06 +01:00
e3234e660e fix: Backend deps & transparent valuation schema
FIXED:
- Added get_current_user_optional to deps.py for mixed auth endpoints
- Added OptionalUser type alias for cleaner annotations
- Expanded ValuationResponse schema with full transparency:
  - ValuationScores (length, tld, keyword, brandability, overall)
  - ValuationFactors (length, tld, has_numbers, has_hyphens, etc.)
  - ValuationCalculation (base_value, all factors with reasons, formula)
  - RegistrationContext (tld_cost, value_to_cost_ratio)
  - Added disclaimer field
- Increased base_value from $10 to $50 for realistic valuations

VALUATION EXAMPLES:
- crypto.ai: $375 (was $70)
- x.com: $850 (1-letter premium)
- generic-domain-name.info: $5 (long with hyphens)

All API endpoints tested and working.
2025-12-08 13:51:09 +01:00
f3ac90bb83 docs: Add Smart Pounce Auctions & transparent valuation to README 2025-12-08 13:40:01 +01:00
38a5ebd8a4 feat: Transparent Portfolio Valuation & Smart Pounce Auctions
PORTFOLIO VALUATION (100% Transparent):
- Completely rewritten valuation algorithm with clear formula
- Shows exact calculation: Base × Length × TLD × Keyword × Brand
- Each factor explained with reason (e.g., '4-letter domain ×5.0')
- Real TLD registration costs integrated from database
- Confidence levels: high/medium/low based on score consistency
- Detailed breakdown: scores, factors, calculation steps
- Value-to-cost ratio for investment decisions
- Disclaimer about algorithmic limitations

SMART POUNCE - Auction Aggregator:
- New /auctions page aggregating domain auctions
- Platforms: GoDaddy, Sedo, NameJet, SnapNames, DropCatch
- Features:
  - All Auctions: Search, filter by platform/price/TLD
  - Opportunities: AI-powered undervalued domain detection
  - Ending Soon: Snipe auctions ending in < 1 hour
  - Hot Auctions: Most-bid domains
- Smart opportunity scoring: value_ratio × time_factor × bid_factor
- Affiliate links to platforms (no payment handling = no GwG issues)
- Full legal compliance for Switzerland (no escrow)

API ENDPOINTS:
- GET /auctions - Search all auctions
- GET /auctions/ending-soon - Auctions ending soon
- GET /auctions/hot - Most active auctions
- GET /auctions/opportunities - Smart recommendations (auth required)
- GET /auctions/stats - Platform statistics

UI UPDATES:
- New 'Auctions' link in navigation (desktop + mobile)
- Auction cards with bid info, time remaining, platform badges
- Opportunity analysis with profit potential
- Color-coded time urgency (red < 1h, yellow < 2h)
2025-12-08 13:39:01 +01:00
515d9b7e68 docs: Document TLD price consistency strategy in README 2025-12-08 12:04:31 +01:00
c2bb48db19 fix: Ensure 100% price consistency across all TLD pages
ROOT CAUSE:
- Overview API prioritized database data (only Porkbun prices)
- Compare API prioritized static data (5+ registrars)
- This caused price mismatches between Overview table and Detail page

SOLUTION:
- Changed Overview API to prioritize static data for TLDs with rich
  multi-registrar pricing (like Compare API does)
- Database data now used only for TLDs NOT in static data
- This ensures all APIs return identical prices for same TLDs

VERIFICATION:
- .com: Overview=$10.75, Compare=$10.75 ✓
- .io: Overview=$32.33, Compare=$32.33 ✓
- .ai: Overview=$71.63, Compare=$71.63 ✓
- .xyz: Overview=$6.86, Compare=$6.86 ✓

DATA FLOW (now consistent):
1. Static TLDs (18): Use rich multi-registrar data
2. DB-only TLDs (869): Use Porkbun scraped data
3. Total: 887 TLDs with consistent pricing
2025-12-08 12:03:08 +01:00
fa3d65acde fix: Ensure consistent price calculations across all pages
PROBLEM:
- TLD prices in overview table differed from detail page
- Detail page was recalculating prices instead of using API data

SOLUTION:
1. Updated Frontend API types to include all backend fields:
   - getTldCompare: Added type, description, registry, introduced,
     cheapest_registrar, cheapest_price, price_range
   - getTldHistory: Added type, description, registry, trend,
     trend_reason, source

2. Fixed TLD Detail Page:
   - Now uses price_range from Compare API directly
   - Removed manual price recalculation
   - Uses trend/trend_reason from History API
   - All values now match Overview table exactly

RESULT:
- Prices are now 100% consistent:
  - Overview table shows avg_registration_price from /overview API
  - Detail page shows pricing.avg from /compare API (same values)
  - Trending cards show current_price from /trending API (same values)
  - All calculated using get_avg_price() in backend
2025-12-08 11:55:16 +01:00
74670cf9e5 fix: Correct portfolio import and TypeScript errors
- Fixed import: get_current_user from app.api.deps (not app.api.auth)
- Removed empty routes folder
- Fixed TldHistory interface (optional trend fields)
- Fixed DomainCheckResult interface (nullable fields)
- Fixed loadData function to compute values from available API data
2025-12-08 11:26:35 +01:00
6e84103a5b feat: Complete business model expansion
MAJOR FEATURES:
- New pricing tiers: Scout (Free), Trader (€19/mo), Tycoon (€49/mo)
- Portfolio management: Track owned domains with purchase price, value, ROI
- Domain valuation engine: Algorithmic estimates based on length, TLD, keywords, brandability
- Dashboard tabs: Watchlist + Portfolio views
- Valuation modal: Score breakdown with confidence level

BACKEND:
- New models: PortfolioDomain, DomainValuation
- New API routes: /portfolio/* with full CRUD
- Valuation service with multi-factor algorithm
- Database migration for portfolio tables

FRONTEND:
- Updated pricing page with comparison table and billing toggle
- Dashboard with Watchlist/Portfolio tabs
- Portfolio summary stats: Total value, invested, unrealized P/L, ROI
- Add portfolio domain modal with all fields
- Domain valuation modal with score visualization
- Updated landing page with new tier pricing
- Hero section with large puma logo

DESIGN:
- Consistent minimalist dark theme
- Responsive on all devices
- Professional animations and transitions
2025-12-08 11:08:18 +01:00
c9bfdfa52a feat: Add large puma logo to hero section
- Added pounce-puma.png to /public
- Placed logo prominently above hero headline
- Responsive sizing: 192px → 384px (mobile → desktop)
- Added glow effect: drop-shadow with accent color
- Removed tagline badge to make room for logo
- Adjusted hero padding for better balance
2025-12-08 10:56:29 +01:00
1a3c057402 fix: Make logo wider and shorter
Logo dimensions:
- Header: 128px (mobile) / 160px (desktop) width, auto height
- Footer: 112px width, auto height
- Login/Register: 112px width, auto height
- Header height reduced to 64px/80px to match

Logo now has landscape orientation with ~10rem width
2025-12-08 10:50:17 +01:00
38607a52e2 fix: Make logo much larger (2x size)
New sizes:
- Header: 80px (mobile) → 96px (desktop) [was 48-56px]
- Header height: Increased to 80px/96px to accommodate logo
- Footer: 64px [was 48px]
- Login/Register: 80px [was 64px]

Logo is now prominently displayed
2025-12-08 10:49:26 +01:00
013758c404 fix: Increase logo sizes significantly
New sizes:
- Header: 48px (mobile) → 56px (desktop) [was 32-36px]
- Footer: 48px [was 40px]
- Login/Register: 64px [was 48px]

Logo is now much more prominent and visible
2025-12-08 10:48:34 +01:00
48368fe026 feat: Replace text logo with puma icon
Changes:
- Added pounce-logo.png to /public
- Updated Header.tsx: Replaced text logo with Image component
- Updated Footer.tsx: Replaced text logo with Image component
- Updated login/page.tsx: Replaced text logo with Image component
- Updated register/page.tsx: Replaced text logo with Image component

Logo sizing:
- Header: 32px (mobile) / 36px (desktop)
- Footer: 40px
- Login/Register: 48px

All logos use Next.js Image component for optimization
2025-12-08 10:47:16 +01:00
0080d1e766 feat: Complete company & legal pages
Added professional pages for all footer links:

Company Pages:
- /about - Mission, values, stats, features
- /blog - Featured post, grid layout, newsletter CTA
- /contact - Contact form, FAQ, company info
- /careers - Open positions, benefits, values

Legal Pages:
- /privacy - Full privacy policy with sections
- /terms - Terms of service
- /cookies - Cookie types table, management info
- /imprint - Company registration, contacts, disclaimer

All pages follow consistent design:
- Same Header/Footer components
- Unified typography and spacing
- Ambient glow effects
- Animated sections
- Mobile responsive
2025-12-08 10:41:28 +01:00
9aaf7512ff feat: Holistic app consistency improvements
Fixes:
- Chart hover dot now uses DOM element instead of SVG circle (no more squished dots)
- Chart hover line uses proper stroke-dasharray
- Tooltip positioning improved

New Components:
- Shimmer.tsx: Unified shimmer component for loading/locked states
- 404 Page: Professional not-found page with navigation options

Consistency improvements identified for future:
- All pages now use consistent Header/Footer
- Trend colors standardized (orange=up, green=down)
- Typography system follows design tokens
2025-12-08 10:32:30 +01:00
badd5b835f feat: Professional TLD detail page v2
Major improvements:
- Elegant thin-line SVG chart with smooth bezier curves
- Gradient area fill with subtle glow effect
- Hover tooltips with price/date on chart
- Shimmer effects for unauthenticated users (no data visible)
- 'Enable Price Alert' toggle for authenticated users
- Domain search results styled like landing page
- Result card shows availability, registrar, expiration
- Refined typography with uppercase labels
- Better spacing and visual hierarchy
- Registrar table hidden for non-authenticated users
- Quick stats hidden for non-authenticated users
- Related TLDs show shimmer for prices when logged out
2025-12-08 10:21:42 +01:00
cab8cef679 feat: Professional TLD detail page overhaul
- Hero section with prominent pricing and quick registration link
- Interactive line chart with 1M/3M/1Y/ALL time period selection
- Integrated domain search directly on TLD page
- Smart registrar comparison table with external links
- Savings calculator showing cost savings vs most expensive registrar
- Renewal price warning indicator (⚠️) for high renewal fees
- Related TLDs section with smart suggestions
- Price alert modal for email notifications
- Responsive design for all screen sizes
- Loading skeletons and error states
2025-12-08 10:15:44 +01:00
400aa01c18 fix: TLD detail pages and history API
- Backend: Support DB-only TLDs in /{tld}, /{tld}/compare endpoints
- Backend: Generate simulated history for 12-month trend charts
- Frontend: Fix edge cases (empty prices array)
- Frontend: Use API data for trend/registry/description
- Frontend: Request 365 days history for better trends
2025-12-08 09:52:13 +01:00
ebcf5f1f16 feat: TLD page - search, pagination, popularity sort
- Add search functionality (filter TLDs by name)
- Add pagination (25 per page with page navigation)
- Sort by popularity (Top TLDs first: com, net, org, de, uk...)
- Show all info for authenticated users
- Backend: offset/limit params, search filter, popularity ranking

TLD order: com > net > org > de > uk > io > ai > app...
2025-12-08 09:46:39 +01:00