All notable changes to the NodeByte Hosting website will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- VPS Pricing Component - New
VpsPricingcomponent atpackages/ui/components/Layouts/VPS/vps-pricing.tsx- Gradient header cards with AMD (red) and Intel (blue) variant colour schemes matching the VPS index page style
- Plan cards show: gradient icon header, plan name + starting price, description, CPU model chip, Check-icon spec list, and CTA button
- Out-of-stock state with Discord link CTA
- Footer CTA with contact and "View All Plans" links
- VPS Plan Filter Panel - Dynamic range slider filters on the AMD/Intel VPS pricing sections
- Price, CPU cores, RAM, and Storage sliders — all ranges computed dynamically from plan data at runtime
- Search by plan name and sort (Default / Low–High / High–Low)
- "Clear Filters" button shown only when filters are active
- "No plans match" empty state with clear button
- Gradient Header Pricing Cards for Game Servers -
GamePricingcards redesigned to match VPS card style- Per-game customisable
headerIcon,headerGradient, andheaderIconBgprops with sensible defaults - Minecraft:
Blocksicon, primary gradient; Rust:Gamepad2icon, accent gradient; Hytale:Sparklesicon, amber gradient - Most popular badge moved to header top-right (rounded pill); name + "Starting at £X/mo" row;
Checkicon feature list
- Per-game customisable
- Game Pricing Filters - Search and sort filter bar added to
GamePricingcomponent- Search by plan name, sort by price (ascending / descending / default)
- "Clear Filters" and "No results" empty state
- Bandwidth Unit Support -
VpsPlanSpec.bandwidthnow supportsMB,GB, andTBunits- Replaces the previous
bandwidthTB: number | nullfield - Format:
{ amount: number; unit: "MB" | "GB" | "TB" } | null(null = unmetered)
- Replaces the previous
- VPS Plan
descriptionField - Short description per plan shown under the plan name on pricing cards - VPS Translation Keys - Added
vps.pricing.*namespace:badge,title,description,mostPopular,getStarted,viewAllPlans,contactUs,customSolution,unmetered,poweredByvps.pricing.filters.*:search,price,cpu,ram,storage,sortDefault,sortAsc,sortDesc,clearFilters,noResults,noResultsDescgamePage.pricing.filters.*: same filter keys for game pricing
- VPS AMD & Intel Pages Restructured - Both pages rewritten as thin ~48-line server components
- Now use
VpsHero+VpsPricing+GameFeatures+GameFAQlayout pattern (consistent with game pages) - All plan data, feature keys, FAQ keys, and spec data driven from
packages/core/constants/vps/
- Now use
- Pricing Section Order - Pricing/Plans section moved above Features on all server pages
- Affected: AMD VPS, Intel VPS, Minecraft, Rust, Hytale
- Rationale: visitors want pricing up-front; features serve as supporting detail below
- VPS Pricing Grid - Widened from
max-w-5xltomax-w-6xl, capped at 3 columns (lg:grid-cols-3) for readability AMD_FEATURE_KEYS- Changed from plain string array to{ key, icon }object array for direct use inGameFeaturesAMD_FAQ_KEYS/INTEL_FAQ_KEYS- Added"windows"FAQ keyVpsHeroOOS CTA - Replaced disabled button with an active Discord link (ExternalLinkicon)- Navigation
extrasSection Removed - All "Extra links" state, toggles, desktopDropdownMenu, and mobile dropdown fully excised fromnavigation.tsx LINKS.billing.amdVps- Corrected tohttps://billing.nodebyte.host/store/vps-hosting
- Pre-existing Tailwind v4 class warnings in
game-pricing.tsx— replacedbg-gradient-to-b/rwithbg-linear-to-b/randvia-primary/[0.02]withvia-primary/2
- Admin Locations Page - View and sync Pterodactyl panel locations
- Stats cards showing total locations, descriptions, and node counts
- Searchable data table with short code, long name, and associated nodes
- Individual sync button for locations data
- Navigation item added to admin sidebar with MapPin icon
- Admin Allocations Page - View and manage server allocations across nodes
- Stats cards for total allocations, assigned/unassigned counts, and unique ports
- Filterable table by node with IP, port, alias, assigned server, and node columns
- Server name column now correctly populated from synced allocation data
- Admin Nodes Page - Navigation and routing for server nodes management
- User Account Profile Management - Full profile editing on dashboard account page
- Editable fields: first name, last name, username, phone number, company name, billing email
- Email verification status badge with resend verification button
- Email change request form with new email input and confirmation
- Security tab with password change form
- Account information section showing creation date, last login, and account ID
- Translation Keys - Added missing i18n keys for new features
admin.nav.locations,admin.nav.allocations,admin.nav.nodesnavigation labelsadmin.sync.started,admin.sync.runningtoast message translationsdashboard.accountsection with full profile and security form labels
- API Routes Migration to Go Backend - Consolidated Next.js API routes to centralized Fiber backend
- Removed Next.js API routes from
/app/api/directory - All admin endpoints now served from unified Go Fiber backend with consistent error handling
- Bearer token authentication for all admin routes
- Admin settings endpoints:
GET/POST /api/admin/settings - GitHub repository management:
GET/POST/PUT/DELETE /api/admin/settings/repos - Discord webhook management:
GET/POST/PUT/PATCH/DELETE /api/admin/settings/webhooks - Sync controls:
GET/POST /api/admin/sync,GET /api/admin/sync/logs,GET/POST /api/admin/sync/settings - Server management:
GET /api/admin/servers - Improved API response consistency with backend-driven validation
- Removed Next.js API routes from
- Admin Users Management Enhancements - Improved user listing and filtering capabilities
- Pagination support with configurable page size (25 users per page)
- Sorting by user, email, status, created date, and last login
- Search and filter functionality for user discovery
- User role management dialog for updating admin status
- Statistics cards showing total users, migrated users, admins, and active users
- API Hooks Refactoring - Updated all admin API hooks to work with Go backend
useAdminUsers()- User listing with pagination and filteringuseAdminServers()- Server management queriesuseAdminSettings()- Settings retrieval and updatesuseAdminWebhooks()- Webhook CRUD operations- All hooks now construct proper query parameters for backend endpoints
- Consistent error handling and loading states across all admin operations
- Nested Form Hydration Error - Fixed React hydration mismatch on account page
- Converted nested
<form>inside profile form to<div>withonClickhandler - Email change submission now works without triggering DOM nesting warnings
- Converted nested
- Invisible Disabled Email Input - Fixed dark mode styling for disabled inputs
- Added
text-foreground opacity-100classes to ensure disabled email field text is visible - Previously
bg-mutedmade text invisible against dark backgrounds
- Added
- Admin Users Page Data Population - Fixed empty users table in admin panel
- Corrected
useAdminUsers()hook to accept and pass query parameters (page, pageSize, sortField, sortOrder, filter, search) - Fixed data structure extraction from nested API response format (
data.users[]anddata.pagination) - Corrected mutation payload to only send
userIdandrolesfields - User data now properly displays with pagination, sorting, and filtering working correctly
- Backend timestamp handling fixed to properly convert PostgreSQL TIMESTAMP columns to ISO 8601 format
- Corrected
- API Route Organization - Eliminated duplicate API implementations
- Removed redundant Next.js API routes that are now handled by Go backend
- Centralized authentication and authorization in Go middleware
- Consistent response format across all API endpoints
- GitHub Token Management: Move GitHub personal access token from environment variables to secure database storage
- GitHub token section in admin settings with show/hide toggle
- Token is hidden with asterisks and cannot be viewed once set
- Warning alert about token protection and immutability
- Fallback to
GITHUB_TOKENenvironment variable for backward compatibility
- SystemSettings Database Table: Extended Prisma model for storing system-wide configuration including credentials and notification settings
- Admin Settings API: Complete GET/POST endpoints for retrieving and updating all system settings with database fallback support
- Pterodactyl Configuration Management: Editable Pterodactyl URL, API Key, and API endpoint in admin settings panel
- Crowdin Integration Settings: Project ID and Personal Token configuration for translation management
- Email Notifications System: Resend API integration with database-backed credential storage
- Conditional API key input that appears only when email notifications are enabled
- Helper functions for common notification templates
- Discord Webhook Management: Support for multiple Discord webhooks with add/remove functionality
- Manage webhook names and URLs directly from admin panel
- Conditional section that displays only when Discord notifications are enabled
- Separate webhook entries with individual delete buttons
- Notification Library: Comprehensive notifications module (
packages/core/lib/notifications.ts)sendEmailNotification()- Send emails via Resend APIsendDiscordNotification()- Send to configured Discord webhooks with embed supportsendNotification()- Combined email and Discord notification sender- Helper functions for common notification types (server status, sync updates, maintenance, user registration)
- Maintenance Mode Page: Beautiful
/maintenancepage with animated UI for when site is under maintenance- Accessible by all users; admins can bypass maintenance mode
- Contact support button with styling
- Sync Service Database Credentials: Updated sync library to fetch Pterodactyl credentials from database
- Fallback to environment variables for backward compatibility
- Respects
syncIntervalsetting from database
- Middleware Authentication & Access Control:
- Maintenance mode: Redirects all non-admin users to
/maintenancewhen enabled - Registration disabled: Prevents access to
/auth/registerwhen registration is disabled - All checks performed via database settings with proper fallback
- Maintenance mode: Redirects all non-admin users to
- System Features Toggle: Enable/disable registration, maintenance mode, and auto-sync from database
- Notification Settings: Database-backed email and Discord webhook notification configuration with credential storage
- Advanced Settings: Cache timeout and sync interval configuration with persistent database storage
- Admin Users Table Responsive Design: Mobile-optimized table layout with email displayed under username on small screens
- Connection Testing: Updated test endpoint to use database credentials with validation before sending requests
- Webhook Dispatcher Service: Comprehensive Discord webhook notification system (
packages/core/dispatchers/webhooks.ts)- Event-specific dispatch functions:
dispatchSettingsUpdate(),dispatchServerStateChange(),dispatchSyncCompletion(),dispatchSystemAlert(),dispatchSupportTicket(),dispatchNodeAlert(),dispatchBillingEvent() - Non-blocking asynchronous webhook delivery with parallel execution
- Type-safe webhook routing by event type (GAME_SERVER, VPS, SYSTEM, BILLING, SECURITY, SUPPORT, CUSTOM)
- Webhook delivery tracking with
testSuccessAttimestamp updates - Rich Discord embeds with color-coding by event type
- Automatic webhook selection based on event type and scope (ADMIN, USER, PUBLIC)
- Per-webhook error reporting and detailed delivery statistics
- Event-specific dispatch functions:
- Webhook Integration: Automatic webhook triggers for system events
- Settings updates automatically send SYSTEM webhooks with changed field names
- Sync operations automatically send SYSTEM webhooks with sync summary and duration
- Admin panel webhook management with test functionality
- Webhook creation, editing, deletion via REST API (
/api/admin/settings/webhooks)
- Webhook Documentation: Complete guides and examples (
docs/folder)WEBHOOK_DISPATCHER_README.md- Architecture and feature overviewWEBHOOK_INTEGRATION_GUIDE.md- Integration examples for all event typesWEBHOOK_QUICK_REFERENCE.ts- Copy-paste code samples
- Incremental Sync Progress Logging: Sync functions now emit progress updates to database during operation
- Real-time item counts:
itemsTotal,itemsSynced,itemsFailedupdated after each batch - Last message updates in
metadata.lastMessagefor live progress display - Implemented for locations, nodes, allocations, nests/eggs, servers, and database syncs
- Real-time item counts:
- Allocation Sync Batching: Prevent long blocking operations by batching allocation processing
- Configurable batch size via
SYNC_ALLOCATION_BATCH_SIZEenv variable (default: 100) - Progress updates after each batch for real-time feedback
- Significantly improves sync responsiveness for large node allocations
- Configurable batch size via
- Sync Cancellation Support: Allow admins to cancel running sync operations
- Sync functions check
metadata.cancelRequestedflag and abort gracefully - New
/api/admin/sync/cancelendpoint sets cancellation flag on running sync log - Cancelled syncs marked as FAILED with "Cancelled by user" message
- Sync functions check
- Sync Logs Endpoint: New
/api/admin/sync/logsAPI endpoint for fetching sync audit history- Cursor-based pagination support for efficient browsing of large log histories
- Returns
nextCursorfor client-side pagination - Configurable limit parameter (max 100 entries)
- Admin-only access with authentication check
- Auto-Sync Scheduler: Background scheduler for automatic periodic sync operations
- Reads
auto_sync_enabledandsync_intervalfrom system config - Idempotent scheduler prevents duplicate runs if already executing
- Configurable via admin UI without code changes
- Scheduler started automatically on server render in
app/layout.tsx
- Reads
- Sync Logs Admin Page: New dedicated admin page at
/admin/sync/logsfor sync operation audit- Displays recent sync runs with status badges (Running, Completed, Failed, Pending)
- Real-time scheduler status indicator with last run timestamp
- Full-text search across sync messages and operation types
- Configurable result limit (1-100 entries per page)
- Cursor-based pagination with "Load More" button
- Mobile-responsive card-based layout
- Sync Logs Pagination: Server-side cursor-based pagination for sync logs endpoint
- Efficient pagination using cursor (lastId) approach
- Next cursor included in response for seamless client-side browsing
- Prevents N+1 queries and improves performance with large datasets
- Scheduler Settings API: New
/api/admin/sync/settingsendpoint for managing auto-sync configuration- GET endpoint returns current
auto_sync_enabledandsync_intervalsettings - POST endpoint allows updating scheduler configuration with validation
- Admin-only access with system admin role check
- GET endpoint returns current
- Scheduler Controls in Admin UI: Admin users can now configure auto-sync directly from Sync Logs page
- Toggle switch for enabling/disabling automatic sync
- Numeric input for configuring sync interval in seconds
- Save button to persist configuration to database
- Loading states and error handling with toast notifications
- Sync Logs Sidebar Navigation: Added "Sync Logs" link to admin panel navigation
- Appears as separate menu item from main Sync page
- Accessible to all admin users
- Sync Logs Translation Keys: Complete internationalization for Sync Logs page
- Added
admin.syncLogstranslation section with all UI strings - Includes status labels, button text, field labels, and descriptions
- Supports multiple languages via translation system
- Added
- Servers Admin Panel Schema Fix: Updated servers API and UI to use Prisma schema correctly
- Changed from non-existent direct fields (memory, disk, cpu) to ServerProperty key-value pairs
- Servers API now fetches properties array instead of individual fields
- Server page displays resource info by extracting values from properties
- Graceful handling of missing properties (shows nothing if not available)
- GitHub Release API: Updated to fetch GitHub token from database first, then fallback to environment variable
- Admin Users Table: Restructured table with fixed layout to prevent content overflow on mobile
- Admin Users Status Badges: Full badge text now displays on mobile with vertical stacking when multiple badges present
- Admin Settings Page: Completely redesigned with four tabs (Connections, Features, Notifications, Advanced)
- Pterodactyl section now includes editable URL and API fields with external link button
- New Crowdin section for translation management configuration
- New GitHub section for token management with security warnings
- Features tab with all toggles (Registration, Maintenance Mode, Auto-sync)
- Notifications tab with conditional email and Discord sections with proper styling
- Advanced tab with cache timeout and sync interval selectors
- Pterodactyl Sync Service: Now reads credentials from database first, then falls back to environment variables
- API Route Authentication: Settings test endpoint changed from GET to POST to support credential testing with user-provided values
- Settings Persistence: All configuration now properly persists to database across page reloads
- Translation File Structure: Reorganized monolithic
templates/en.jsoninto modular files for better maintainability- Split into 5 focused modules:
common.json,home.json,pages.json,auth.json,admin.json - Translation loader merges all modular files at runtime
- Crowdin configuration updated to sync from
templates/en/*.jsonpattern - GitHub workflow updated to monitor modular files instead of single file
- No breaking changes - all translation keys available exactly as before
- Split into 5 focused modules:
- Sync Logs Page UI: Redesigned for consistency with other admin pages and improved mobile responsiveness
- Header with title and Refresh button stacks vertically on mobile
- Scheduler status section moved to dedicated Settings card
- Better form control styling with Switch component for toggles
- Mobile-optimized search and filter fields with proper spacing
- Scroll area with divide separators for log list
- Status badges now include animated icons (spinner, checkmark, X)
- Log entry layout is flexible for mobile (stacks) and desktop (side-by-side)
- Egg Property Upsert: Fixed to properly handle composite unique key
[eggId, key, panelType]- Replaced invalid composite upsert with findFirst/update/create pattern
- Properly handles nullable panelType field in searches and filters
- Prevents Prisma validation errors on sync
- Server User Lookup: Fixed to use
findFirstinstead offindUniqueforpterodactylIdfieldpterodactylIdis not unique on User model, changed to proper first-match pattern- Prevents Prisma validation errors when syncing server owners
- Admin Users Table Mobile Overflow: Fixed table content breaking off-screen on mobile devices
- Admin Users Email Display: Email now shown under username on mobile instead of separate column
- User menu now properly detects admin users on mobile
- Settings Credentials: Passwords and API keys no longer accidentally logged or exposed in responses
- GitHub Token Security: GitHub token now stored in database instead of .env file, no longer visible in git history
- Incorrect footer links: The
About NodeBytesection was incorrectly linking to/changeloginstead of/about - Egg Property Upsert Validation Error: Fixed Prisma validation error when upserting egg properties (was using non-existent
eggId_keyunique) - Server Owner Lookup Validation Error: Fixed Prisma validation error when looking up servers by pterodactylId (field is not unique)
- Servers Admin Panel Display: Fixed servers table to properly display resource data from database schema
- GitHub Token Protection: Token is encrypted-ready in database and cannot be viewed once set (hidden with asterisks)
- Credential Encryption Ready: Database structure prepared for future encryption of sensitive fields (API keys, tokens)
- Admin-Only Access: All settings management restricted to authenticated admin users via middleware
- Environment Variable Fallback: System gracefully handles missing database settings by falling back to environment variables
- Token Immutability: Warning displayed to admins that GitHub token cannot be changed after initial setup without manual database intervention
- Webhook URL Validation: Discord webhook URLs validated before storage to prevent invalid configurations
- Webhook Scope Control: Webhooks can be scoped to ADMIN/USER/PUBLIC to control event distribution
- Webhook Delivery Tracking: Successful webhook deliveries logged with timestamp for audit trail
- Webhook Error Isolation: Individual webhook failures don't impact other webhooks or main application
- Sync Cancellation Security: Cancel endpoint restricted to admin users with proper authentication checks
- User Role Management: Only system admins can modify user roles via new role management endpoint
- Safety check prevents self-demotion of system admin status
- Role updates require authentication and authorization verification
- Dockerfile: was using it to force docker to pull the latest version of our translations, but the
nixpacks.tomlnow does this instead
3.1.0 - 2025-12-22
- Authentication System: NextAuth v5 integration with credentials provider
- User Registration: Registration form with email, username, password fields
- User Login: Login form with email/password authentication
- User Menu: Dropdown menu showing user info, panel link, admin link, and logout
- Session Management: Server-side and client-side session handling
- Admin Dashboard: Complete admin panel with Pterodactyl sync statistics
- Admin Sync Page: Detailed sync management with live terminal-style logging
- Admin Users Page: User management with search, filters, sorting, and pagination
- Admin Servers Page: Server listing with status indicators, resource display, and owner info
- Admin Settings Page: System configuration with connection testing (WIP alert for other features)
- Admin Route Protection: Middleware-based admin authentication checking database directly
- Admin Panel Responsive: Mobile-first design with slide-out drawer navigation
- Admin User Controls: Language selector, theme toggle, user menu, and back-to-site button in admin panel
- Admin API Endpoints: REST endpoints for users, servers, and settings management
- Pterodactyl Sync Service: Background sync of users, servers, nodes, locations, allocations, nests, eggs
- Database Schema: Prisma models for Users, Servers, Nodes, Locations, Allocations, Nests, Eggs, and more
- Sync API Endpoints: GET for stats, POST for triggering syncs with target selection
- Layout Chrome Component: Client-side component for conditional nav/footer visibility
- Language Selector Improvements: Search functionality, region grouping, ScrollArea for 30 languages
- Currency Selector Improvements: Country flag icons using country-flag-icons library
- Knowledge Base System: Complete documentation system with markdown support
- KB Markdown Processing: Uses remark/rehype pipeline with GFM, syntax highlighting, auto-linking headings
- KB Categories: Organized articles by category with metadata and icons
- KB Article Cards: Article previews with reading time, tags, and author info
- KB Search: Full-text search across all KB articles with relevance scoring
- KB Table of Contents: Sticky sidebar TOC with scroll spy highlighting
- KB Sidebar Navigation: Collapsible category navigation with article links
- KB Breadcrumbs: Navigation breadcrumbs for category and article pages
- KB Previous/Next Navigation: Article-to-article navigation within categories
- KB Navigation Link: Added Knowledge Base link to desktop and mobile navigation
- Tailwind Typography: Added
@tailwindcss/typographyplugin for prose styling - Getting Started Articles: Introduction, Quick Start Guide, Game Panel Tutorial
- Minecraft Guides: Server Software selection guide, Installing Plugins guide
- Rust Guides: Getting Started with Rust, Oxide/uMod Installation guide
- Billing Guides: WHMCS Client Portal overview and account management
- Syntax Highlighting: Code block styling for documentation with hljs classes
- Theme Toggle: Categorized theme selector with Base, Cool Tones, Warm Tones, and Nature categories
- Theme Swatches: Color preview swatches for each theme option
- Navigation Dropdowns: Services and Resources dropdown menus with hover-to-open functionality
- Animated Chevrons: Chevron icons rotate based on dropdown open/closed state
- Hero Stats: Animated statistics cards displaying uptime, latency, and support availability
- SLA Counter: Animated number counter displaying 99.6% SLA guarantee
- Features Highlights: Feature cards now include detailed highlight lists with checkmark icons
- About Stats Grid: Statistics section showing SLA, latency, support hours, and server count
- FAQ Search: Search input for filtering FAQ questions
- FAQ CTA Section: "Still have questions?" section with contact and Discord buttons
- Games Section Icons: Dedicated icons for each game server type (Minecraft, Rust, Hytale, Coming Soon)
- Games Feature Lists: Each game card now displays key features with checkmark icons
- Games Banner Images: Minecraft and Rust cards now use banner images from public directory
- Hytale Hosting: Added Hytale game server hosting card to the games section
- Footer Status Indicator: Live status indicator linking to status page
- Footer Link Categories: Organized footer links with category icons
- Contact Page Redesign: Complete redesign with support channels, email grid, and social links
- Contact Social Links: Follow us section with X, GitHub, Discord, and Trustpilot links
- Contact Discord Notice: Important notice about Discord support limitations moved to prominent position
- Dynamic Logo Component: SVG logo that respects theme accent colors and light/dark mode
- Currency System: Multi-currency support with GBP as base currency (USD, EUR, CAD, AUD)
- Currency Selector: Global currency dropdown in navigation (desktop and mobile)
- Price Component: Auto-converting price display component using selected currency
- Internationalization: Added
next-intlfor multi-language support - Language Selector: Global language dropdown with flag icons in navigation
- Translation Files: English, German, French, and Spanish translations
- External Translations: Support for loading translations from external GitHub repo
- Crowdin Integration: Configuration for community translation contributions
- Dedicated Game Pages: Individual pages for Minecraft, Rust, and Hytale hosting
- Game Hero Component: Reusable hero section for game pages with banners and features
- Game Features Component: Reusable features grid with icon mapping for server components
- Game Pricing Component: Reusable pricing cards with currency conversion
- Game FAQ Component: Reusable FAQ accordion for game-specific questions
- Packages: Updated next.js to version
16.0.10to address the latest CVE - Project Structure: Reorganized codebase into
packages/directory for better modularitypackages/core/- Shared hooks (use-currency,use-locale,use-mobile,use-toast) and utilities (currency,translations,utils)packages/i18n/- Internationalization configuration and request handlingpackages/ui/- All UI components, layouts, and shadcn/ui primitives
- Navigation: Replaced NavigationMenu with DropdownMenu components for improved reliability
- Navigation Mobile: Redesigned with accordion-style dropdowns (only one open at a time)
- Navigation Settings: Added Language, Currency, and Theme selectors to mobile menu
- Layout Structure: Moved Navigation and Footer to root layout for site-wide consistency
- Layout Providers: Added
CurrencyProvider,LocaleProvider, andNextIntlClientProvider - Layout Chrome: Nav/footer visibility now handled by client component using
usePathname()for proper client-side navigation support - Translation Loading: Changed from dynamic imports to static imports for all 30 locale files (bundler compatibility)
- Admin Panel Layout: Redesigned with responsive sidebar that becomes a drawer on mobile
- Admin Dashboard: Responsive stat cards with 2-column grid on mobile
- Theme Toggle Layout: Themes now displayed in organized grid layouts by category
- Hero Section: Complete redesign with gradient text, glassmorphism cards, and Trustpilot integration
- Features Section: Redesigned with badge header, gradient text, and enhanced card styling
- About Section: Redesigned with stats grid, value proposition cards, and gradient headers
- FAQ Section: Redesigned with animated accordions, search functionality, and cleaner single-column layout
- Games Section: Redesigned with banner images, feature lists, and consistent card heights
- Contact Page: Redesigned with gradient background, animated orbs, and organized support channels
- Footer: Complete redesign with two-section layout, categorized links, and dynamic Logo component
- Footer Logo: Now uses dynamic Logo component that respects theme colors
- Card Styling: Unified glassmorphism effect (
bg-card/30 backdrop-blur-sm border-border/50) across all components - Button Styling: Consistent rounded button styles with proper hover states
- Section Spacing: Standardized padding (
py-24 sm:py-32) across all homepage sections - Pricing Display: All prices now stored in GBP and auto-convert based on user's currency preference
- Hydration Error: Resolved React hydration mismatch in
layout.tsxcaused bycolorSchemestyle attribute - Navigation Dropdowns: Fixed dropdown content not loading and alignment issues
- Theme Persistence: Themes now properly persist across page reloads
- Mobile Menu Bleed-through: Fixed Discord button bleeding through mobile navigation overlay
- Server Component Serialization: Fixed icon props passing between Server and Client components using string-based icon mapping
- i18n Client/Server Split: Separated shared locale config from server-only request handling to prevent build errors
- Translation System: Fixed translations not switching languages due to wrong import path and dynamic import issues
- Admin Nav/Footer Visibility: Fixed nav/footer sometimes showing on admin pages or staying hidden after leaving admin
- HeroGraphic Sidebar: Removed from FAQ section for cleaner layout
- colorScheme Logic: Removed from layout.tsx to prevent hydration errors
- Inline Pricing Currency: Removed currency selector from individual pricing sections (now global in nav)
3.0.0 - Initial Rewrite
Initial Next.js 15 website with App Router, shadcn/ui components, and multi-theme support.