# **ThrillWiki: Complete Feature List** ## **1. HOMEPAGE & DISCOVERY** ### 1.1 Hero Search - **Autocomplete Search Bar**: As you type, suggestions appear for parks, rides, and companies matching your query - **Recent Searches**: Previously searched items are saved and shown for quick access - **Search Categories**: Results are grouped by type (parks, rides, companies) ### 1.2 Content Discovery Tabs The homepage displays curated content across **11 different discovery tabs**: - **Trending Parks**: Parks with the most page views in the last 30 days - **Trending Rides**: Rides with the most page views in the last 30 days - **New Parks**: Most recently added parks to the database - **New Rides**: Most recently added rides to the database - **Recent Changes**: Latest edits and updates across all entities - **Top Parks**: Highest-rated parks by user reviews - **Top Rides**: Highest-rated rides by user reviews - **Opening Soon**: Parks and rides with upcoming opening dates - **Recently Opened**: Parks and rides that just opened - **Closing Soon**: Parks and rides announced to close - **Recently Closed**: Parks and rides that have recently closed ### 1.3 Recent Changes Feed - Shows entity type, name, change type (created/updated) - Displays who made the change and when - Links directly to the changed entity's page - Handles deleted entities gracefully --- ## **2. PARKS** ### 2.1 Parks Listing Page - **Grid and List Views**: Toggle between card grid or compact list display - **Search**: Find parks by name, description, or location - **Extensive Filtering**: - Park type (theme park, amusement park, water park, etc.) - Operating status (operating, seasonal, closed, etc.) - Country, state/province, city - Operators and property owners - Rating range (minimum to maximum) - Ride count range - Coaster count range - Review count range - Opening year range - Opening date range - Closing soon flag - Closing date range - **Sorting Options**: Name, rating, ride count, opening date, etc. - **Collapsible Sidebar**: Save screen space by hiding filters - **Pagination**: Navigate through pages of results - **Add Park Button**: Opens submission form (requires sign-in) ### 2.2 Parks Nearby Page - **Geolocation**: Uses your device's location to find nearby parks - **Location Search**: Search for any city, postal code, or address to center search - **Adjustable Radius**: Select search radius from 25km to unlimited - **Unit System Toggle**: Switch between metric (km) and imperial (miles) - **Interactive Map**: - Shows all parks within radius as markers - Markers cluster when zoomed out - Click markers to see park preview - Your location shown with accuracy radius - **Distance Display**: Each park shows distance from your location - **Sorting**: Sort by distance or alphabetically ### 2.3 Park Detail Page - **Hero Banner**: Large banner image with park name and status overlay - **Quick Stats Cards**: Total rides, roller coasters, reviews, opening date - **Status Badges**: Shows operating status and park type - **Location Display**: City, state, country with formatted display - **Closing Banner**: Warning banner if park is announced to close - **Version Indicator**: Shows version number with history access - **Breadcrumb Navigation**: Hierarchical navigation back to parks list **Tabs on Park Detail:** - **Overview Tab**: - Park description (expandable if long) - Contact information (phone, website, email) - Operating hours and seasonal dates - Location map (OpenStreetMap embed) - "Best Rated Rides" section showing top-rated rides at this park - Operator and property owner information with preview hover cards - **Rides Tab**: All rides at this park in a grid - **Reviews Tab**: - Average rating display - Rating distribution histogram - Review list with pagination - Write review button (opens form) - **Photos Tab**: Community-submitted photos gallery - **History Tab**: Complete edit history and timeline events ### 2.4 Park Rides Page - Dedicated page showing all rides at a specific park - Same filtering and sorting as main rides page - Shows ride cards with ratings and status --- ## **3. RIDES** ### 3.1 Rides Listing Page - **Grid and List Views**: Toggle between views - **Search**: Find rides by name or description - **Comprehensive Filtering**: - Category (roller coaster, flat ride, water ride, dark ride, etc.) - Status (operating, under construction, defunct, SBNO, etc.) - Park selection - Country and location - Manufacturer - Designer - Ride model - Intensity level - Wetness level (dry, splash, soaking, etc.) - Rotation type (stationary, spinning, etc.) - Transport type (chain lift, launch, etc.) - Accessibility features - Rating range - Speed range - Height range - Length range - Drop range - Duration range - Inversion count range - Opening date range - Closing date range - **Sorting**: By name, rating, speed, height, length, drop, duration, inversions - **Pagination** - **Add Ride Button**: Opens submission form ### 3.2 Ride Detail Page - **Hero Banner**: Banner image with ride name, status, and park name overlay - **SBNO Banner**: Special alert if ride is "Standing But Not Operating" - **Closing Banner**: Warning if ride is closing - **Quick Stats Cards**: Speed, height, length, duration, capacity, inversions, drop, G-force - **Park Link**: Hover shows park preview card - **Version Indicator** **Tabs on Ride Detail:** - **Overview Tab**: - Description - Ride highlights (thrill features, records, unique elements) - Former names history (if renamed) - Similar rides suggestions - Recent photos preview - Manufacturer and designer information with hover cards - Ride model link if applicable - Location map - **Specifications Tab**: - All technical specifications in organized sections - Measurements displayed in user's preferred units - Height requirements - Capacity information - Accessibility notes - Roller coaster-specific stats (track type, elements, etc.) - **Reviews Tab**: Same as parks - **Photos Tab**: Community photos - **History Tab**: Edit history and timeline --- ## **4. COMPANIES** Companies are categorized into four types with separate listing and detail pages: ### 4.1 Manufacturers - Companies that build rides - Listing with filtering by country, status - Detail page showing: - Company description - Contact information - Website - Rides they manufactured (with link to full list) - Ride models they produce (with link to full list) ### 4.2 Designers - Companies that design rides - Listing and detail pages - Detail page shows rides they designed ### 4.3 Operators - Companies that operate parks - Listing and detail pages - Detail page shows parks they operate ### 4.4 Property Owners - Companies or entities that own parks - Listing and detail pages - Detail page shows parks they own ### 4.5 Company Hover Cards - Throughout the app, company names show preview cards on hover - Preview includes logo, type, headquarters location, and key stats --- ## **5. RIDE MODELS** ### 5.1 Manufacturer Models Page - Accessed from manufacturer detail page - Lists all ride models that manufacturer produces - Shows model name, description, and count of installations ### 5.2 Ride Model Detail Page - Model description and specifications - Template specifications that all installations share - List of all rides of this model worldwide - Photo gallery - History timeline --- ## **6. SEARCH** ### 6.1 Global Search Page - Full-page search with larger result area - Type tabs: All, Parks, Rides, Companies - Result counts per type ### 6.2 Search Filtering - **Location Filters**: Country, state/province - **Rating Range**: Minimum and maximum - **Toggle Filters Panel**: Show/hide for more screen space ### 6.3 Search Sorting - Relevance - Name - Rating - Review count - Ride count (for parks) - Opening date ### 6.4 Search Results - Rich result cards with images, ratings, and type indicators - Quick actions per result - Empty state with suggestions --- ## **7. USER AUTHENTICATION** ### 7.1 Sign In Options - **Email/Password**: Traditional login - **Magic Link**: Passwordless email sign-in - **Google OAuth**: Sign in with Google - **Discord OAuth**: Sign in with Discord ### 7.2 Sign Up - Email, password, username, display name - CAPTCHA verification (Cloudflare Turnstile) - Email confirmation required ### 7.3 Multi-Factor Authentication (MFA) - TOTP-based (authenticator app) - Required for admin and moderator accounts - MFA challenge modal during login - Session AAL (Authentication Assurance Level) tracking ### 7.4 Account Security Features - Session management (view/revoke active sessions) - Password change with old password verification - Add password to OAuth-only accounts - Ban detection on login (prevents banned users) - Storage warning (if localStorage disabled) --- ## **8. USER PROFILE** ### 8.1 Profile Page - **Profile Header**: Avatar, display name, username, join date - **Profile Bio**: User description - **Location Display** (if privacy allows) - **Role Badge**: Displays if moderator/admin - **Edit Profile Button** (own profile only) - **Block User Button** (other profiles) ### 8.2 Profile Statistics - Unique ride credits - Total rides taken - Parks visited - Coasters ridden ### 8.3 Profile Tabs - **Activity Tab**: - Recent submissions (parks, rides, photos, etc.) - Recent rankings/lists - Recent reviews - Recent ride credits added - Each activity shows status (pending, approved, rejected) - **Reviews Tab**: All user's reviews - **Lists Tab**: User's custom lists - **Ride Credits Tab**: User's ride history ### 8.4 Profile Editing - Change display name - Change username (with confirmation dialog - limited changes) - Update bio - Upload/change avatar photo - Profile shows preview in real-time --- ## **9. USER SETTINGS** ### 9.1 Account & Profile Tab - View/change email address (requires verification) - View linked authentication providers - Profile picture management - Display name editing ### 9.2 Security Tab - Password management - Change existing password - Add password to OAuth account - Multi-Factor Authentication - Enroll new TOTP authenticator - View enrolled factors - Remove MFA factors - Active Sessions - View all logged-in devices/browsers - Revoke individual sessions - Session shows device info, location, last active ### 9.3 Privacy Tab - Profile visibility (public, registered users only, private) - Location visibility - Show/hide email on profile - Data deletion options ### 9.4 Notifications Tab - Email notification preferences - In-app notification preferences - Digest frequency settings - Notification rate limiting ### 9.5 Location & Info Tab - Personal location (displayed on profile) - Home park selection - Timezone setting - Biography/about text ### 9.6 Data & Export Tab - **Data Export**: Download all your data as JSON - Profile information - Reviews - Ride credits - Lists - Submissions - **Account Deletion**: - Request account deletion - 7-day grace period - Email verification required - Cancel pending deletion - Scheduled deletion date shown --- ## **10. RIDE CREDITS (RIDE COUNT TRACKING)** ### 10.1 Credits Overview - Total ride count (sum of all rides taken) - Unique credits (unique rides) - Parks visited - Coasters ridden ### 10.2 Credit Cards - Each credit shows: - Ride name and park - Ride category and type icons - First ride date - Total ride count - User rating - Personal notes - Card/banner image ### 10.3 Credit Management - **Add Credit**: Search and select ride, enter date and count - **Edit Credit**: Update count, date, notes - **Delete Credit**: Remove with confirmation - **Reorder Credits**: Drag-and-drop to arrange custom order ### 10.4 Credit Filtering - By category (roller coaster, flat ride, etc.) - By park - By manufacturer - By country/region - By ride status - By intensity level ### 10.5 Credit Sorting - Custom order (manual arrangement) - Date (first ride date) - Count (times ridden) - Alphabetical ### 10.6 Credit Views - Grid view (card layout) - List view (compact table) - Edit mode (drag handles visible) --- ## **11. USER LISTS (RANKINGS)** ### 11.1 List Creation - Title and description - List type (parks, rides, coasters, companies, or mixed) - Public/private visibility toggle ### 11.2 List Types - Parks only - Rides only - Coasters only - Companies only - Mixed (any combination) ### 11.3 List Item Management - Search and add items - Add personal notes per item - Reorder items by dragging - Remove items - Automatic position numbering ### 11.4 List Display - Numbered ranking display - Entity images and basic info - Notes visible - Links to entity pages ### 11.5 List Visibility - Toggle public/private per list - Eye icon indicates current visibility - Private lists only visible to owner --- ## **12. REVIEWS & RATINGS** ### 12.1 Review Creation - Star rating (1-5 stars, half-star precision) - Review title - Review content (text body) - Submit for moderation ### 12.2 Reviews Display - Star rating visualization - Reviewer info (username, avatar) - Review date - Review content - Helpful vote count ### 12.3 Review Interaction - **Helpful Vote**: Mark reviews as helpful - **Edit**: Edit your own reviews - **Delete**: Delete your own reviews - Vote count display per review ### 12.4 Rating Statistics - Average rating (displayed on entity pages) - Review count - Rating distribution chart (1-5 stars histogram) - Rating shown on cards throughout app ### 12.5 Review Moderation - All reviews go through moderation queue - Approved reviews become visible - Rejected reviews with reason sent to user --- ## **13. PHOTOS** ### 13.1 Photo Upload - **Drag and Drop**: Drop files onto upload zone - **File Browser**: Click to select files - **Multiple Upload**: Upload up to 10 photos at once - **Image Editor**: Crop, rotate, adjust before upload - **Caption Editor**: Add captions to each photo - **Progress Indicator**: Shows upload progress ### 13.2 Photo Gallery - Grid layout with thumbnails - Click to view full-size in modal - Navigation between photos (prev/next) - Photo credits shown - Captions displayed - "Set as Banner/Card" option for entity owners ### 13.3 Photo Management (Entity Pages) - **Add Photos Button**: Opens upload dialog - **Photo Management Dialog**: - Delete photos - Update captions - Set as banner image - Set as card image ### 13.4 Photo Submissions - All photos go through moderation - Submission preview shows thumbnails - Batch approval/rejection - Reviewer notes for rejections --- ## **14. CONTENT SUBMISSION SYSTEM** ### 14.1 The Sacred Pipeline Every piece of user content follows this flow: 1. User fills out form 2. Submission record created 3. Enters moderation queue 4. Moderator claims submission 5. Review and approve/reject 6. If approved: entity version created, public content updated 7. Visible on site ### 14.2 Park Submission Form - **Basic Info Section**: - Name (required) - Slug (auto-generated, editable) - Description - Park type dropdown - Status dropdown - **Location Section**: - Location search (autocomplete) - Or create new location inline - Country, state, city, postal code - Coordinates (latitude/longitude) - Timezone - **Dates Section**: - Opening date (with precision: exact, month, year) - Closing date (with precision) - Is closing flag - **Media Section**: - Banner image upload - Card image upload - **Contact Section**: - Phone - Email - Website - **Relationships Section**: - Operator (select or create new) - Property owner (select or create new) - **Moderation Section**: - Submission notes (explain changes) - Test data flag (for testing) ### 14.3 Ride Submission Form - **Basic Info**: - Name - Slug - Description - Category dropdown - Status dropdown - **Park Selection**: - Search existing parks - Or create new park inline - **Specifications** (all with unit conversion): - Maximum speed - Height - Length - Drop height - Duration - Capacity per hour - Inversions count - G-force - Minimum height requirement - **Ride Attributes**: - Intensity level - Wetness level - Rotation type - Transport type (lift type) - Accessibility features - **Roller Coaster Specific** (if category is coaster): - Coaster type (steel, wood, hybrid) - Seating type (sit-down, inverted, flying, etc.) - Track layout (out and back, twister, etc.) - Additional technical specs - **Relationships**: - Manufacturer (select or create) - Designer (select or create) - Ride model (select or create) - **Dates**: - Opening date with precision - Closing date with precision - **Media**: - Banner and card images - **Former Names**: - Add name history with date ranges - **Technical Specifications Editor**: - Add custom specs (name, value, unit) - Organized by categories ### 14.4 Company Submission Forms Separate forms for each company type: - Manufacturer form - Designer form - Operator form - Property owner form Each includes: - Name and slug - Description - Company type - Headquarters location - Website - Logo image ### 14.5 Ride Model Submission Form - Model name - Description - Associated manufacturer - Template specifications - Photos ### 14.6 Composite Submissions When creating a new entity that references another non-existent entity: - Create new park inline while submitting ride - Create new manufacturer inline while submitting ride - Create new operator inline while submitting park - All linked entities bundled into single submission - Moderator can approve/reject individual parts ### 14.7 Form Features - **Auto-save Drafts**: Work saved locally - **JSON Import**: Import sample data or paste JSON - **Sample Data Loading**: Pre-fill with example data - **Unit System Toggle**: Switch between metric/imperial while editing - **Unit Conversion Preview**: See both units in real-time - **Field Validation**: Real-time error highlighting - **Error Summary**: Collapsible list of all validation errors - **Help Tooltips**: Explanations for complex fields - **Submission Help Dialog**: Explains moderation process --- ## **15. VERSIONING & HISTORY** ### 15.1 Version Indicator - Displayed on entity pages - Shows version number - Indicates last change date - Click opens history panel ### 15.2 Entity History Tabs - **Edit History Tab**: - Chronological list of all versions - Each version shows: - Version number - Change type (created, updated, deleted) - User who made change - Change timestamp - Change reason - Select two versions to compare - "Restore" button (moderators only) - **Timeline Tab**: - Historical events for the entity - Events like "renamed", "relocated", "record broken" - Each event has date and description ### 15.3 Version Comparison - Side-by-side field comparison - Visual diff highlighting: - Green: Added fields - Red: Removed fields - Yellow: Modified fields - Old value vs new value display - Handles complex fields (locations, specs) ### 15.4 Rollback/Restore - Moderators can restore previous versions - Creates new submission for review - Audit trail maintained --- ## **16. MODERATION SYSTEM** ### 16.1 Moderation Queue - **Queue Statistics Cards**: - Pending submissions count - Pending reports count - Flagged content count - **Queue Tabs**: - Moderation (submissions) - Reports (user reports) - Activity (recent actions) ### 16.2 Queue Filtering - Entity type (all, parks, rides, companies, etc.) - Status (pending, approved, rejected) - Date range - Submitter ### 16.3 Queue Sorting - Created date - Priority - Submitter - Type ### 16.4 Queue Items Display Each item shows: - Submitter username and avatar - Submission type badge - Entity name - Action type (create/edit) - Created timestamp - Status badge - Lock indicator (if claimed) - Preview of changes ### 16.5 Claim System - Moderator must claim submission before acting - Claim lock shown to other moderators - Lock expires after 30 minutes - Force release available for admins - Prevents conflicts between moderators ### 16.6 Submission Review - **Full Data Preview**: See all submitted data - **Change Diffs**: For edits, shows what changed - **Field Comparison**: Side-by-side old/new values - **Photo Preview**: Thumbnails of submitted photos - **Location Preview**: Map for location changes - **Validation Status**: Shows any validation warnings ### 16.7 Approval Actions - **Approve All**: Approve entire submission - **Selective Approval**: Approve specific items only - **Reject All**: Reject entire submission - **Selective Rejection**: Reject specific items - **Request Changes**: Ask user for modifications - **Reviewer Notes**: Add notes for decision ### 16.8 Bulk Operations - Select multiple submissions - Bulk approve selected - Bulk reject selected - Results dialog shows success/failure per item ### 16.9 Conversion Tool - Convert "create" submission to "edit" - When duplicate entity found - Links to existing entity - Preserves submitted data ### 16.10 Rejection Dialog - Select rejection reason from presets - Add custom notes - Notification sent to submitter ### 16.11 Reports Queue - User-submitted reports of content issues - Report type (inaccurate, inappropriate, etc.) - Report description - Link to reported entity - Actions: Dismiss, Take action, Escalate ### 16.12 Recent Activity - Log of recent moderation actions - Shows moderator, action, entity, timestamp - Filterable by action type ### 16.13 Moderation Audit Log - Complete audit trail - All approval/rejection decisions - Moderator identification - Timestamps - Notes and reasons --- ## **17. ADMIN FEATURES** ### 17.1 User Management - **User List**: All users with search - **User Details**: Profile, activity, roles - **Role Management**: - Assign roles: user, moderator, admin - Role requires confirmation - MFA requirement enforcement - **User Actions**: - Ban user (with reason) - Unban user - Delete user (with confirmation) - View user's submissions ### 17.2 Admin Dashboard - Overview statistics - Pending queue counts - System health indicators - Quick access cards to sections ### 17.3 Admin Settings - **Moderation Settings**: - Auto-refresh mode (on/off) - Polling interval - Default sort order - **Notification Settings**: - Admin alert thresholds - Email notification toggles - **System Settings**: - Maintenance mode toggle - Feature flags ### 17.4 Blog Management - Create blog posts - Edit existing posts - Publish/unpublish - SEO settings per post ### 17.5 Support/Contact - View contact form submissions - Reply to messages - Merge duplicate tickets - Mark as resolved ### 17.6 Monitoring Hub - **Overview**: System health dashboard - **Database Stats**: - Table sizes - Row counts - Growth trends - Entity comparisons - Top contributors - Data quality metrics - **Approval History**: - Historical approval data - Date range filtering - Export functionality - **Edge Function Logs**: - Live logs from backend functions - Filter by function name - Search log content - Error highlighting ### 17.7 Error Monitoring - **Error Lookup**: Search errors by ID - **Error List**: Recent errors with details - **Error Details Modal**: - Error message - Stack trace - User context - Request metadata - Submission links ### 17.8 Trace Viewer - View distributed traces - Span hierarchy visualization - Timing breakdown - Debug backend operations ### 17.9 Database Maintenance - **Location Deduplication**: Find and merge duplicate locations - **Orphaned Image Cleanup**: Remove unused uploaded images - **Quick Undo Merge**: Rollback recent location merges - **Data Retention Panel**: Manage data cleanup schedules ### 17.10 Database Manager - Direct entity management (emergency use) - Create entities bypassing moderation (emergency) - Delete entities with cascade - Reserved for critical fixes only ### 17.11 SEO Audit - Check all entities for SEO issues - Missing titles, descriptions - Image alt text verification - Slug validation ### 17.12 OG Tag Preview - Preview Open Graph tags for any page - Social media share previews - Twitter card preview - Debug missing data ### 17.13 OpenStreetMap Usage - Track API usage - Rate limit monitoring - Quota tracking --- ## **18. ERROR HANDLING** ### 18.1 User Error Experience - Generic error messages only - "Something went wrong. Please try again." - Reference ID provided for support - No technical details exposed ### 18.2 Admin/Moderator Error Experience - **Comprehensive Error Modal**: - Full error message - Stack trace - Error classification - Request context - User information - Submission IDs - Suggested actions ### 18.3 Error Logging - All errors logged to database - Error monitoring dashboard - Searchable by ID - Context preservation --- ## **19. MAPS & LOCATION** ### 19.1 OpenStreetMap Integration - Embedded maps on entity pages - Interactive maps for nearby parks - Map markers with popups ### 19.2 Location Search - Autocomplete location search - Results from OpenStreetMap Nominatim - City, state, country extraction - Coordinate extraction ### 19.3 Geolocation - Browser geolocation support - Accuracy display - Permission handling - Fallback for denied permission ### 19.4 Interactive Parks Map - Leaflet-based interactive map - Marker clustering - Park preview popups - User location marker - Radius circle overlay - Zoom controls ### 19.5 Location Enrichment - Automatic timezone detection - Country/state parsing - Coordinate validation --- ## **20. MEASUREMENT UNITS** ### 20.1 Unit Preferences - **Metric**: km/h, meters, centimeters, kilograms - **Imperial**: mph, feet, inches, pounds - Preference stored per-user - Anonymous users: auto-detect by location ### 20.2 Unit Display - All measurements shown in user's preferred units - Automatic conversion from stored metric values - Unit labels included ### 20.3 Form Unit Handling - Input in either unit system - Live conversion preview - Stored always in metric - Unit toggle in forms ### 20.4 Unit Types - Speed (km/h ↔ mph) - Distance (m ↔ ft) - Large distance (km ↔ mi) - Height/short (cm ↔ in) - Weight (kg ↔ lbs) --- ## **21. NOTIFICATIONS** ### 21.1 In-App Notifications - Notification bell in header - Unread count badge - Notification feed - Mark as read/unread - Click to navigate ### 21.2 Email Notifications - Submission status updates - Review responses - Admin alerts - System announcements ### 21.3 Notification Types - Submission approved/rejected - New review on your entity - Role changes - System alerts ### 21.4 Notification Preferences - Per-notification-type toggles - Email on/off - In-app on/off - Digest frequency --- ## **22. BLOG** ### 22.1 Blog Index - List of published posts - Featured image - Excerpt - Author and date - Categories/tags ### 22.2 Blog Post Page - Full content - Author information - Related posts - Social sharing ### 22.3 Blog Admin - Create/edit posts - Draft/publish status - Scheduled publishing - SEO settings --- ## **23. STATIC PAGES** ### 23.1 Terms of Service - Legal terms - Formatted content ### 23.2 Privacy Policy - Data handling explanation - Cookie policy - User rights ### 23.3 Submission Guidelines - How to contribute - Quality standards - Moderation process explanation - Tips for approval ### 23.4 Contact Page - Contact form - Support information - Response time expectations --- ## **24. REPORTING SYSTEM** ### 24.1 Report Button - Available on entities and reviews - Opens report dialog ### 24.2 Report Types - Inaccurate information - Inappropriate content - Duplicate entry - Spam - Other ### 24.3 Report Form - Report type selection - Description field - Submit button ### 24.4 Report Processing - Appears in admin reports queue - Review and action - Close report --- ## **25. THEME & UI** ### 25.1 Light/Dark Mode - System preference detection - Manual toggle - Persisted preference - Smooth transition ### 25.2 Responsive Design - Mobile-optimized layouts - Touch-friendly interactions - Collapsible sidebars on mobile - Swipeable tab content - Mobile-specific navigation ### 25.3 Loading States - Skeleton loaders for content - Loading spinners for actions - Progress indicators for uploads - Shimmer effects ### 25.4 Empty States - Friendly illustrations - Helpful messages - Action suggestions --- ## **26. SEO & SHARING** ### 26.1 Open Graph Tags - Dynamic OG images - Page-specific titles - Descriptions - Type metadata ### 26.2 URL Structure - `/parks` - Parks listing - `/parks/{slug}` - Park detail - `/parks/{slug}/rides` - Park's rides - `/parks/{slug}/rides/{slug}` - Ride at park - `/parks/nearby` - Nearby parks - `/rides` - Rides listing - `/manufacturers` - Manufacturer listing - `/manufacturers/{slug}` - Manufacturer detail - `/manufacturers/{slug}/rides` - Manufacturer's rides - `/manufacturers/{slug}/models` - Manufacturer's models - `/manufacturers/{slug}/models/{slug}` - Model detail - `/designers`, `/owners`, `/operators` - Similar patterns - `/profile/{username}` - User profile - `/settings` - User settings - `/admin` - Admin dashboard - `/search` - Search page - `/blog` - Blog ### 26.3 Sitemap - Dynamic sitemap generation - All entities included - Priority settings --- ## **27. PERFORMANCE** ### 27.1 Lazy Loading - Pages lazy loaded on navigation - Images lazy loaded on scroll - Tabs load content on activation ### 27.2 Caching - React Query data caching - Stale-while-revalidate - Optimistic updates ### 27.3 Prefetching - Route prefetching on hover - Related data prefetching - Search result preloading --- ## **28. ACCESSIBILITY** ### 28.1 Keyboard Navigation - Full keyboard support - Focus indicators - Tab order management ### 28.2 Screen Reader Support - Semantic HTML - ARIA labels - Alt text for images - Announcements for updates ### 28.3 Visual Accessibility - High contrast modes - Scalable text - Color not sole indicator ---