Destinations Addon The Destinations Addon is a comprehensive content management system for organizing and displaying location-based information. It allows you to create detailed profiles for destinations (such as businesses, attractions, or places of interest) and organize them using various classification systems. Introduction What is the Destinations Addon? The Destinations Addon is a comprehensive content management system for organizing and displaying location-based information. It allows you to create detailed profiles for destinations (such as businesses, attractions, or places of interest) and organize them using various classification systems. What can you do with it? Create and manage destination profiles with detailed information including contact details, location, images, and descriptions Organize destinations using categories, experiences, activities, amenities, and other classification systems Enable user submissions so visitors can submit their own destinations for review Search and filter destinations based on multiple criteria Display featured destinations to highlight special places Manage relationships between destinations and related content types Provide API access for frontend applications to retrieve and display destination data Key Features Rich Content Management: Store comprehensive information about each destination including images, descriptions, contact information, and location data Flexible Organization: Use categories (with hierarchical support), experiences, activities, amenities, accommodations, and products to organize destinations Geographic Support: Store location data including addresses, coordinates, and map links Image Management: Support for main images, header images, and image galleries Social Media Integration: Link destinations to social media profiles User Submissions: Allow authenticated users to create and manage their own destinations Approval Workflow: Review and approve user-submitted destinations before they go live Search and Filter: Powerful search capabilities with multiple filter options API Access: RESTful API endpoints for retrieving destination data Content Blocks: Flexible content blocks for rich page layouts SEO Support: Meta titles and descriptions for search engine optimization Who is this for? This addon is designed for: Content Managers: Who need to create and maintain destination information Administrators: Who manage the overall system and approve user submissions Frontend Developers: Who need to integrate destination data into websites or applications End Users: Who may submit their own destinations through the API Getting Started Accessing the Destinations Module Log into the admin panel Navigate to the Destinations module in the main navigation menu You'll see the main Destinations dashboard with various sections Overview of the Admin Interface The Destinations module is organized into several sections accessible from the left sidebar: Destinations: Manage all destination entries Experiences: Manage experience types Actions: Manage action types Accommodations: Manage accommodation types Amenities: Manage amenity types Activities: Manage activity types Cities: Manage city entries Products: Manage product types Categories: Manage destination categories (supports hierarchical structure) Groups: Manage destination groups Basic Navigation Click on any section name to view a list of all entries in that section Use the New button to create a new entry Click on an existing entry to edit it Use the search and filter options to find specific entries Understanding Content Types The Destinations Addon uses several content types to organize and classify destinations. Understanding these types will help you effectively manage your destination data. Destinations What are destinations? Destinations are the main content type in this addon. A destination represents a physical location or business that visitors might want to learn about or visit. Examples include restaurants, hotels, attractions, shops, parks, or any place of interest. What information do they contain? Destinations can store a wide variety of information including: Basic details (name, description, address) Contact information (phone, email, website) Location data (address, city, zip code, coordinates) Images (main image, header image, gallery) Social media links Operating hours and special features Categories, experiences, activities, amenities, and other classifications Rich content blocks for detailed descriptions SEO information When to use it: Create a destination entry for any location or business you want to feature in your system. Experiences What are experiences? Experiences are types of experiences that destinations can offer. For example, "Outdoor Adventure", "Fine Dining", "Family Fun", or "Romantic Getaway". Experiences help visitors find destinations based on the type of experience they're seeking. How do they relate to destinations? Destinations can be associated with one or more experiences. When a visitor searches for a specific experience type, they'll see all destinations that offer that experience. When to use it: Create experience types that represent the different kinds of experiences your destinations offer. Then assign these experiences to relevant destinations. Actions What are actions? Actions represent specific actions or activities that can be performed at destinations. They provide another way to classify and search for destinations based on what visitors can do there. How do they relate to destinations? Destinations can be associated with actions, allowing visitors to find destinations where they can perform specific actions. When to use it: Create action types that represent common activities (e.g., "Hiking", "Shopping", "Swimming") and assign them to destinations where these actions are possible. Accommodations What are accommodations? Accommodations represent types of lodging or places to stay. Examples include "Hotels", "Bed & Breakfasts", "Campgrounds", or "Vacation Rentals". How do they relate to destinations? Destinations that offer lodging can be associated with accommodation types. This helps visitors find places to stay. When to use it: Use accommodations to classify destinations that provide lodging services. Amenities What are amenities? Amenities are features or services that destinations offer. Examples include "Free WiFi", "Parking", "Pet Friendly", "Wheelchair Accessible", or "Outdoor Seating". How do they relate to destinations? Destinations can have multiple amenities associated with them. This helps visitors filter destinations based on the features they need. When to use it: Create amenity types for common features that visitors might search for, then assign them to destinations that offer those features. Activities What are activities? Activities are specific recreational or entertainment activities that can be done at destinations. Examples include "Hiking", "Fishing", "Wine Tasting", or "Live Music". How do they relate to destinations? Destinations can be associated with activities, helping visitors find places where they can participate in specific activities. When to use it: Create activity types for common activities in your area, then assign them to destinations that offer those activities. Cities What are cities? Cities represent geographic locations where destinations are located. They help organize destinations by location. How do they relate to destinations? Each destination is associated with a city. This allows visitors to search for destinations in specific cities. When to use it: Create city entries for all cities where you have destinations. Then assign the appropriate city to each destination. Products What are products? Products represent types of products that destinations might sell or offer. This could include "Local Crafts", "Fresh Produce", "Artisan Goods", or "Wine". How do they relate to destinations? Destinations that sell products can be associated with product types, helping visitors find places that offer specific products. When to use it: Use products to classify destinations that sell or offer specific types of products. Categories What are categories? Categories are a primary way to organize destinations into groups. Categories support a hierarchical structure, meaning you can have parent categories and child categories (subcategories). How do they work? Categories can have parent categories, creating a tree structure Example: "Dining" (parent) → "Restaurants" (child) → "Italian Restaurants" (grandchild) Destinations can be assigned to one or more categories Categories help organize and filter destinations When to use it: Create a category structure that makes sense for your destination types. Use parent categories for broad classifications and child categories for more specific groupings. Groups What are groups? Groups are another way to organize destinations. Unlike categories, groups are typically used for administrative or organizational purposes. How do they work? Groups allow you to create custom collections of destinations for specific purposes, such as featured collections, seasonal groupings, or special promotions. When to use it: Use groups when you need to create custom collections of destinations that don't fit into your category structure. Managing Destinations This section provides step-by-step guides for managing destination entries. Creating a New Destination Navigate to Destinations in the admin panel Click the New Destination button Fill in the required fields: Name: The name of the destination (required) Slug: A URL-friendly version of the name (required, must be unique) Address: Street address (required) City: City name (required) Zip: Zip code (required) Fill in optional fields as needed Click Save to create the destination Editing Destination Information Navigate to Destinations Click on the destination you want to edit Make your changes Click Save to update Adding Images Destinations support three types of images: Main Image: The primary image displayed for the destination Used in listings and search results Recommended size: 500x500 pixels or larger Header Image: A larger image used at the top of destination detail pages Recommended size: 1920x600 pixels or similar wide format Gallery Images: Multiple images that can be displayed in a gallery Add as many as needed Recommended size: 1200x800 pixels or larger To add images: Open the destination for editing Find the image field you want to use (Main Image, Header Image, or Gallery Images) Click to upload or select an existing image Save your changes Setting Location and Contact Information Location Fields: Address: Street address City: City name Zip: Zip code State: State or province Region: Regional designation Mailing Address: Separate mailing address if different Location: Geographic coordinates (automatically populated when address is geocoded) Contact Information: Email: Contact email address Phone: Primary phone number Toll Free: Toll-free phone number Fax: Fax number Website: Website URL Adding Categories, Experiences, Activities, and Amenities To associate a destination with categories, experiences, activities, or amenities: Open the destination for editing Find the field for the type you want to add (Categories, Experiences, Activities, Amenities, etc.) Select one or more items from the list You can select multiple items in most cases Save your changes Tips: Start typing to search for items Select multiple items to create multiple associations These associations help visitors find destinations through search and filtering Managing Social Media Links You can add social media links to destinations: Open the destination for editing Find the social media section Add URLs for: Facebook Twitter Instagram YouTube Pinterest Other social media platforms Save your changes Setting Operating Hours and Special Features Operating Information: Operating Hours: Store hours of operation Call for Appointment: Checkbox if appointments are required Open Date: When the destination opened Special Features: Family Owned: Checkbox for family-owned businesses Percent Sourced Locally: Percentage of locally sourced products Associations: Professional or industry associations Visitor Parking: Whether parking is available Visitor Restrooms: Whether restrooms are available Handicap Accessible: Accessibility information Kid Friendly: Whether the destination is suitable for children Pet Friendly: Whether pets are allowed Free WiFi: Whether WiFi is available And many more options Enabling/Disabling Destinations To control whether a destination is visible to the public: Open the destination for editing Find the Enabled checkbox Check to enable (visible) or uncheck to disable (hidden) Save your changes Note: Disabled destinations won't appear in public listings or search results, but they remain in the system and can be re-enabled later. Approving User-Submitted Destinations When users submit destinations through the API, they need to be approved before going live: Navigate to Destinations Look for destinations with the Approved checkbox unchecked Review the destination information Make any necessary edits Check the Approved checkbox Ensure Enabled is also checked Save your changes Note: Unapproved destinations are not visible to the public, even if enabled. Managing Related Content This section covers how to manage the various content types that support destinations. Creating and Managing Experiences Navigate to Experiences in the admin panel Click New Experience Enter: Name: The experience name (e.g., "Outdoor Adventure") Slug: URL-friendly version (auto-generated from name) Content: Description of the experience Images: Main image and/or header image Save Experiences can then be assigned to destinations to help visitors find destinations by experience type. Creating and Managing Activities Navigate to Activities Click New Activity Enter the activity name, slug, and optional description Save Activities help visitors find destinations where they can participate in specific activities. Creating and Managing Amenities Navigate to Amenities Click New Amenity Enter the amenity name and description Save Common amenities include "Free WiFi", "Parking", "Pet Friendly", "Wheelchair Accessible", etc. Creating and Managing Accommodations Navigate to Accommodations Click New Accommodation Enter the accommodation type name and description Save Use accommodations to classify destinations that provide lodging. Creating and Managing Cities Navigate to Cities Click New City Enter: Name: City name Slug: URL-friendly version Optional content and images Save Cities help organize destinations by geographic location. Creating and Managing Products Navigate to Products Click New Product Enter the product type name and description Save Use products to classify destinations that sell or offer specific types of products. Organizing with Categories Categories support a hierarchical structure, allowing you to create parent and child categories. Creating a Parent Category: Navigate to Categories Click New Category Enter the category name and slug Leave Parent empty Save Creating a Child Category: Navigate to Categories Click New Category Enter the category name and slug Select a Parent category from the dropdown Save Example Structure: Dining (parent) Restaurants (child) Italian Restaurants (grandchild) Mexican Restaurants (grandchild) Cafes (child) Shopping (parent) Retail Stores (child) Markets (child) Benefits of Hierarchical Categories: Better organization Easier navigation More specific filtering options Cleaner URL structures Using Groups Navigate to Groups Click New Group Enter the group name and description Save Groups can be used to create custom collections of destinations for special purposes, promotions, or administrative organization. Searching and Filtering The Destinations Addon provides powerful search and filtering capabilities through both the admin interface and the API. How to Search Destinations In the Admin Interface: Use the search box at the top of the destinations list Search by name, address, or other text fields Results update when you click Filter Available Search Filters You can filter destinations by: Name: Search for destinations by name (partial matches supported) Categories: Filter by one or more categories Experiences: Filter by experience types Activities: Filter by activities Amenities: Filter by amenities Accommodations: Filter by accommodation types Cities: Filter by city Products: Filter by product types Actions: Filter by action types Destination Type: Filter by destination type classification Approved: Filter by approved Yes or No Enabled: Filter by enabled Yes or No Featured: Filter by featured Yes or No Understanding Search Results Search results include: Destination name Main image (if available) Location information Approved, Enabled, Featured Results can be sorted. User-Submitted Content The Destinations Addon allows authenticated users to submit their own destinations through the API. How Users Can Submit Destinations Users with authenticated API access can: Create new destinations using the API Update their existing destinations Delete their destinations (if not yet approved) Reviewing and Approving Submissions Review Process: Navigate to Destinations in the admin panel Look for destinations where Approved is unchecked Review all submitted information: Verify accuracy of contact information Check that images are appropriate Ensure content meets your standards Verify location information Make any necessary edits Check the Approved checkbox Ensure Enabled is checked if you want it visible immediately Save What Happens: Unapproved destinations are not visible to the public Once approved, destinations become visible (if also enabled) Users receive notifications when their submissions are approved or updated Managing User-Created Content Best Practices: Review submissions regularly Provide feedback to users if submissions need changes Use the notes field to track review status Consider creating guidelines for user submissions Common Tasks: Edit user-submitted content for accuracy Add missing information Improve descriptions Add or replace images Correct location data Destination Fields Reference This section provides a comprehensive reference for all fields available on destination entries. Use this as a guide when creating or editing destinations. Basic Information Field Type Required Description Name Text Yes The destination's name Slug Text Yes URL-friendly version of the name (must be unique) Subtitle Text No A subtitle or tagline Description Text No Brief description (may be used in listings) Content Rich Text No Full detailed description of the destination Contact Information Field Type Required Description Email Email No Contact email address Phone Text No Primary phone number Toll Free Text No Toll-free phone number Fax Text No Fax number Website URL No Website URL Location Details Field Type Required Description Address Text Yes Street address City Text Yes City name Zip Text Yes Zip or postal code State Text No State or province Region Text No Regional designation Mailing Address Text No Separate mailing address if different Location Address Text No Formatted location address Location Formatted Text No Geocoded formatted address Location Latitude Decimal No Geographic latitude (auto-populated) Location Longitude Decimal No Geographic longitude (auto-populated) Map Link URL No Link to map service (Google Maps, etc.) Map Image Image No Static map image Images Field Type Required Description Main Image Image No Primary image (used in listings) Main Image Alt Text Text No Alt text for main image (accessibility) Header Image Image No Large header image (used on detail pages) Gallery Images Multiple Images No Image gallery (multiple images) Social Media Links Field Type Required Description Facebook Link URL No Facebook page URL Twitter Link URL No Twitter profile URL Instagram Link URL No Instagram profile URL YouTube Link URL No YouTube channel URL Pinterest Link URL No Pinterest profile URL Social Media Other Text No Other social media links or information Operating Information Field Type Required Description Operating Hours Text No Hours of operation Call for Appointment Checkbox No Whether appointments are required Open Date Date No Date the destination opened Special Features and Services Field Type Required Description Family Owned Checkbox No Whether the business is family-owned Percent Sourced Locally Number No Percentage of locally sourced products Associations Text No Professional or industry associations Visitor Parking Checkbox No Whether parking is available Visitor Restrooms Checkbox No Whether restrooms are available Handicap Accessible Checkbox No Whether the location is wheelchair accessible Kid Friendly Checkbox No Whether suitable for children Pet Friendly Checkbox No Whether pets are allowed Kennels Checkbox No Whether pet kennels are available Overnight Stay Checkbox No Whether overnight accommodations are available Overnight Amenities Text No Details about overnight amenities Group Tours Checkbox No Whether group tours are offered Group Tours Info Text No Information about group tours Classes Checkbox No Whether classes or workshops are offered Classes Info Text No Information about classes Direct Buy Checkbox No Whether direct purchasing is available Pick Products Checkbox No Whether customers can pick products Free WiFi Checkbox No Whether free WiFi is available Feed Animals Checkbox No Whether visitors can feed animals Event Rentals Checkbox No Whether event space is available for rent Event Rentals Contact Text No Contact information for event rentals Special Events Checkbox No Whether special events are hosted Special Clothing Text No Special clothing requirements Physical Needs Text No Information about physical requirements Food Served Checkbox No Whether food is served Food Served Info Text No Details about food service Alcohol Served Checkbox No Whether alcohol is served Alcohol Served Info Text No Details about alcohol service Owner Information Field Type Required Description Owner First Name Text No Owner's first name Owner Last Name Text No Owner's last name Owner Contact Number Text No Owner's contact phone Owner Email Text No Owner's email address Services and Links Field Type Required Description Services Type Text No Type of services offered Reservations Link URL No Link to reservations system Restaurant Link URL No Link to restaurant menu or page Golf Link URL No Link to golf course information Relationships Field Type Required Description Categories Multiple Select No Associated categories Experiences Multiple Select No Associated experiences Actions Multiple Select No Associated actions Accommodations Multiple Select No Associated accommodation types Amenities Multiple Select No Associated amenities Activities Multiple Select No Associated activities Products Multiple Select No Associated product types City Page Select No Associated city page Content and Media Field Type Required Description Content Blocks Blocks No Flexible content blocks for rich layouts Extra Content Rich Text No Additional content section Callout Content Rich Text No Highlighted callout content Sidebar Callout Content Rich Text No Sidebar callout content Video Code Text No Embedded video code (YouTube, Vimeo, etc.) Files Multiple Files No Downloadable files Prices Repeater No Price information (title and content) Columns Repeater No Column content (title and content) Status and Visibility Field Type Required Description Enabled Checkbox No Whether the destination is visible to the public Approved Checkbox No Whether the destination has been approved by an admin Featured Checkbox No Whether the destination is featured Package Checkbox No Package designation SEO Fields Field Type Required Description Meta Title Text No SEO meta title Meta Description Text No SEO meta description Additional Fields Field Type Required Description Notes Text No Internal notes (not visible to public) Lodging Status Text No Lodging status information Lodging User Text No Lodging user information Lodging Pass Text No Lodging pass information TA Location ID Text No TripAdvisor location ID Destination Type Select No Type classification Google Calendar URL No Google Calendar URL ICS Calendar URL No ICS calendar file URL Scripts Text No Custom scripts Common Tasks and Workflows This section provides step-by-step guides for common tasks you'll perform when managing destinations. Setting Up a New Destination from Scratch What you'll need: Destination name and basic information Address and contact details At least one image (recommended) Categories or other classifications (recommended) Steps: Navigate to Destinations → New Destination Fill in required fields: Name Slug (or let it auto-generate) Address City Zip Add contact information (email, phone, website) Upload a main image Write a description in the Content field Select at least one category Add experiences, activities, or amenities as relevant Fill in any special features that apply Check Enabled to make it visible Check Approved (if you're an admin creating it directly) Click Save Tips: Start with the essentials, you can always add more details later Use a descriptive name that clearly identifies the destination Choose a slug that's readable and SEO-friendly Add multiple images to the gallery for better presentation Adding Multiple Destinations When adding many destinations: Prepare your data in a spreadsheet with columns for: Name, address, city, zip Phone, email, website Categories, experiences, etc. Image file names Create destinations one at a time (or use bulk import if available): Start with the first destination Fill in all information Save and move to the next Use consistent naming for easier management later Batch upload images if possible, then assign them to destinations Time-saving tips: Create templates for common destination types Use the same categories and classifications for similar destinations Copy similar destinations and modify rather than starting from scratch Organizing Destinations with Categories Planning your category structure: List all the main types of destinations you have Group them into broad categories (parent categories) Break down into more specific subcategories (child categories) Create the category structure in the admin panel Example structure: Dining ├── Restaurants │ ├── Italian │ ├── Mexican │ └── American ├── Cafes └── Fast Food Shopping ├── Retail Stores ├── Markets └── Specialty Shops Entertainment ├── Theaters ├── Museums └── Parks Assigning categories: Open a destination for editing Find the Categories field Select one or more appropriate categories Save Best practices: Don't create too many categories (aim for 5-10 main categories) Use subcategories for more specific organization Assign multiple categories if a destination fits in more than one Review and refine your category structure periodically Creating a Featured Destinations List To highlight special destinations: Identify destinations you want to feature Open each destination for editing Check the Featured checkbox Save Featured destinations will appear when using the featured destinations API endpoint and can be displayed prominently on your frontend. Tips: Feature destinations that are particularly noteworthy or popular Rotate featured destinations periodically to keep content fresh Consider featuring seasonal destinations Limit the number of featured destinations for better impact Managing User Submissions Daily workflow: Check for new unapproved destinations Review each submission: Verify contact information is accurate Check that images are appropriate and of good quality Ensure descriptions are complete and well-written Verify location information Make any necessary edits Approve and enable if ready, or contact the user for more information Communication: Use the notes field to track review status Contact users if submissions need changes Provide clear guidelines for what makes a good submission Quality control: Ensure all required information is present Verify images meet quality standards Check for duplicate submissions Verify business legitimacy Updating Destination Information When to update: Contact information changes Hours of operation change New images become available Business adds new services or features Location information needs correction How to update: Find the destination (use search if needed) Open it for editing Make your changes Save For user-submitted destinations: Users can update their own destinations via the API Admins can update any destination Changes to approved destinations may trigger notifications Archiving or Removing Destinations Disabling a destination: Open the destination Uncheck the Enabled checkbox Save The destination will no longer appear in public listings but remains in the system. Deleting a destination: Open the destination Use the delete option (if available) Confirm deletion Note: Approved destinations are typically disabled rather than deleted to preserve data. Unapproved user submissions can be deleted. When to archive vs. delete: Disable/Archive: Business temporarily closed, seasonal closure, or you want to keep the data Delete: Duplicate entry, test entry, or permanently closed with no need to keep data Tips and Best Practices Best Practices for Destination Descriptions Writing effective descriptions: Be specific: Include unique details that set the destination apart Use keywords naturally: Include terms people might search for Tell a story: Help visitors understand what makes the destination special Include practical information: Hours, what to expect, what to bring Keep it readable: Use short paragraphs and bullet points for easy scanning Update regularly: Keep information current and accurate Content structure: Opening hook (what makes it special) Key features and highlights Practical information (hours, location details) What visitors can expect Call to action (visit, call, book, etc.) Image Recommendations Main Image: Size: At least 500x500 pixels, square or near-square aspect ratio Content: Best representation of the destination Quality: High resolution, well-lit, in focus Format: JPG or PNG Header Image: Size: 1920x600 pixels or similar wide format Content: Scenic view, exterior, or representative scene Quality: High resolution, professional if possible Format: JPG Gallery Images: Size: 1200x800 pixels or larger Content: Variety of views, interior, exterior, activities, products Quantity: 5-10 images is ideal Quality: Consistent quality and style General tips: Use original photos when possible Ensure proper lighting Include people when appropriate (shows scale and activity) Show different angles and perspectives Keep file sizes reasonable for web (optimize before uploading) Category Organization Tips Creating an effective category structure: Start broad: Create 5-10 main categories Get specific with subcategories: Use child categories for detailed organization Keep it simple: Don't create too many levels (2-3 levels is usually enough) Use clear names: Category names should be immediately understandable Consider your audience: Organize in a way that makes sense to your visitors Review regularly: Refine your structure as you add more destinations Common mistakes to avoid: Creating too many top-level categories Using vague or unclear category names Creating categories for only one or two destinations Not using subcategories when you have many similar items SEO Tips Optimizing for search engines: Use descriptive names: Destination names should be clear and include location when relevant Write unique descriptions: Avoid duplicate content across destinations Use meta titles and descriptions: Fill these in for better search engine visibility Include location keywords: Naturally include city, region, and area names Use proper headings: Structure content with headings when using rich text Optimize images: Use descriptive alt text for images Create quality content: Search engines favor comprehensive, useful content Meta title best practices: Keep under 60 characters Include destination name and location Make it compelling and descriptive Meta description best practices: Keep under 160 characters Summarize what makes the destination special Include a call to action when appropriate Performance Considerations For content managers: Optimize images before uploading: Compress images to reduce file size Use appropriate image sizes: Don't upload unnecessarily large images Limit gallery images: While you can add many images, 10-15 is usually sufficient Keep descriptions concise: While detailed descriptions are good, extremely long content can impact performance For API consumers: Use appropriate limits: Don't request more data than you need Cache responses: API responses are cached, but implement client-side caching too Use search filters: Filter results on the server rather than loading everything Request only needed fields: The API returns comprehensive data, but you may not need everything General tips: Regularly review and update content to keep it fresh Remove outdated or irrelevant information Archive old destinations rather than deleting if you might need the data later Monitor API usage and optimize queries as needed Custom Next.js Frontend vs Embedded Widgets for a Destinations Brand Summary For a destinations brand, a custom Next.js frontend backed by API-level integrations is usually the stronger long-term solution than relying on embedded widgets. Widgets can be useful for quick, isolated features, but they tend to limit brand control, experience design, performance tuning, and cross-content orchestration. Why a destinations brand is different A destinations site is rarely just a single feed or booking surface. It usually has to bring together: destination listings event calendars editorial content seasonal campaigns maps and geolocation search and filtering user favorites or trip planning partner or community-submitted content That means the website experience is not just "display this one data source." It is a composed product experience that connects many content types and journeys. What embedded widgets are good at Embedded widgets are usually best when the goal is: to launch something quickly to drop a single feature into an existing site to avoid building a full frontend to support a narrowly scoped integration with limited UX requirements Examples: a booking module embedded on one page a small ad block For these cases, widgets can reduce implementation time and create a lower-effort path to launch. Where widgets start to break down For a full destinations brand experience, embedded widgets often become constraining because they can introduce hard boundaries around: layout and visual design the depth of design customization, since many widgets only expose limited theme controls such as colors, fonts, spacing, or button styles SEO control routing and URL strategy page performance analytics consistency accessibility tuning cross-module search and filtering state sharing across favorites, itineraries, destinations, and events editorial storytelling that blends structured data with custom content In practice, widgets are often feature-level solutions, not site architecture solutions. Another common limitation is that widget vendors often let us change only particular theme aspects instead of the actual component system. That means we may be able to restyle surface-level details, but not fully control markup structure, interaction patterns, responsive behavior, or how the experience aligns with the rest of the brand. Why we favor API-level integrations API-level integrations let us treat the CMS and related services as the content and business logic layer, while the frontend remains fully tailored to the brand. That matters because a custom Next.js application gives us: full control over information architecture and page composition first-class SEO with clean routing, metadata, schema, and indexable content better performance tuning through server rendering, caching, and selective hydration a unified design system instead of multiple embedded UI islands shared application state across search, favorites, itineraries, and content discovery cleaner analytics and attribution across the full visitor journey easier integration of multiple APIs into one coherent experience more freedom to build campaign pages, landing pages, and editorial experiences without widget constraints For a destinations brand, this usually produces a site that feels like one product instead of a collection of stitched-together tools. Embedded widgets can be useful for narrow, fast-to-launch feature inserts, but a destinations brand usually needs a unified product experience across listings, events, editorial content, search, maps, and planning tools. That is why we favor API-level integrations and a custom Next.js frontend: they give us full control over UX, SEO, performance, and how all of those content types work together. Practical rule of thumb Choose embedded widgets when: the scope is small the feature is isolated speed matters more than deep customization Choose a custom Next.js frontend with API integrations when: the site is the core digital product brand differentiation matters SEO matters multiple content types need to work together the user journey spans discovery, planning, and conversion long-term flexibility matters more than short-term embed speed Conclusion For this kind of destinations platform, widgets are helpful as tactical tools, but API-driven frontend architecture is the better strategic foundation. It better matches the shape of the content model, the complexity of the user journey, and the level of control expected from a modern destinations brand.