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
- Getting Started
- Understanding Content Types
- Managing Destinations
- Managing Related Content
- Searching and Filtering
- User-Submitted Content
- Destination Fields Reference
- Common Tasks and Workflows
- Tips and Best Practices
- Custom Next.js Frontend vs Embedded Widgets for a Destinations Brand
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
Editing Destination Information
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
- Open the destination for editing
- Find the social media section
- Add URLs for:
- YouTube
- 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:
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
Experiences can then be assigned to destinations to help visitors find destinations by experience type.
Creating and Managing Activities
Activities help visitors find destinations where they can participate in specific activities.
Creating and Managing Amenities
Common amenities include "Free WiFi", "Parking", "Pet Friendly", "Wheelchair Accessible", etc.
Creating and Managing Accommodations
Use accommodations to classify destinations that provide lodging.
Creating and Managing Cities
Cities help organize destinations by geographic location.
Creating and Managing Products
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:
Creating a Child Category:
Example Structure:
- Dining (parent)
- Restaurants (child)
- Italian Restaurants (grandchild)
- Mexican Restaurants (grandchild)
- Cafes (child)
- Restaurants (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
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:
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 |
|---|---|---|---|
| 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:
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.