Configuration Guide

Horizon Studio & Configure your App

Customize your app and discover all the features of Horizon Studio. Fields are pre-filled with optimal values: change only what you want to personalize.

IFRAME and CORS Test

This section is only needed if your site is not shown inside the app (iframe) or if the images from your site are not displayed. For everything else you don't have to configure anything: the app already works.

๐Ÿ“Œ
Who this section is for: only those with an eligible plan who want to embed their own website or blog inside the app. If you are not embedding your own site, ignore this section: everything already works without any changes.

Step 1: IFRAME Test

Before changing anything, check whether your site/blog is already ready.

1
Go to the website IFrameTester.com
2
Paste the full URL of your site or blog (e.g. https://www.myblog.com)
3
Click Render
โœ…
Does your site appear in the frame? You don't need to do anything: your site/blog is already compatible!
โŒ
Do you see an error like "Refused to connect", a gray frame, or the images from your site don't load in the app? Proceed to Step 2.

Step 2: The Code to Add

Copy this code at the very top of your site's .htaccess file: it must be the first block of the file. It enables both displaying your site in an iframe and loading its images (CORS). If you don't know where to find this file, ask the webmaster or hosting provider of your website.

.htaccess
<IfModule mod_headers.c>
# i-Frame enable
Header always unset X-Frame-Options
Header always set Content-Security-Policy "frame-ancestors *"
# CORS
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, OPTIONS, POST"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"
# 3. future-proofing
Header set Cross-Origin-Resource-Policy "cross-origin"
</IfModule>
โœ…
Done! After adding the code, run the test again on IFrameTester.com: your site and its images will be visible in the app within a few minutes.

Fundamental Requirements

๐Ÿ”’
HTTPS protocol: Your site/blog must have an active SSL certificate. Sites on http:// (insecure) cannot be loaded.
โ˜๏ธ
Cloudflare: If you use Cloudflare, disable any "HSTS" or "Origin Shield" rules that force the X-Frame-Options: SAMEORIGIN header.

Optional: Advanced Features

To offer the best experience to your users, add this script in the <head> of your site. The script enables additional features such as optimized navigation and smooth animations inside the app.

1
Open your site's HTML file (or the theme template file)
2
Find the <head> ... </head> tag
3
Paste the following script before the closing</head>
html
<script src="https://scripts.madebywest.com/horizon-webview-helper.js" data-horizon-webview async></script>
โœ…
What this script does: Enables optimized navigation, smooth animations and advanced transitions when your site is viewed inside the Travelinfluencer app. The site continues to work normally even without the script.
๐Ÿ’ก
Optional but recommended: The script is lightweight, loads asynchronously and doesn't affect your site's performance. It does nothing if the site isn't opened inside the app.
๐Ÿ“ฑ
Social Embed: Some social platforms allow you to embed their content directly in your app. The availability of this feature depends on the social platform: not all social networks support embedding. If the platform allows it, the content will be displayed natively inside the app without additional configuration.
๐Ÿ”ด
Having problems? If the test keeps failing after applying the code, images don't load, or your site returns an error, contact your website's technical support (your hosting provider or your webmaster) and provide a screenshot of the test performed on IFrameTester.com. These settings live on your website's server: Travelinfluencer support cannot intervene on your server's configuration.

Custom Domain (White-Label)

If your plan includes the Custom Domain option, you can connect your domain or subdomain (e.g. app.yourname.com) to the platform. Your users will access your app from your web address.

How DNS pointing works
๐ŸŒ app.yourname.com
โ†’
๐Ÿ”— CNAME Record
points to
โ†’
connect.travelinfluencer.co
๐Ÿ”’ SSL Certificate
generated automatically
โ†’
โœ… Your App is online!
accessible from app.yourname.com

DNS Pointing Instructions

Log in to your domain management panel (e.g. Aruba, Cloudflare, Register) and add a new DNS record:

FieldValue to enter
Record TypeCNAME
Host / Nameapp, or any name you prefer: travel, portal, connect...
Destination / Valueconnect.travelinfluencer.co
TTLAutomatic or 3600

Important Notes

๐Ÿšซ
Do not use A records (IP addresses). Use only the CNAME record pointing to connect.travelinfluencer.co. This ensures your service stays active even when our servers are updated.
๐Ÿ”’
Automatic SSL / HTTPS: Once the pointing is configured, the system automatically activates a free SSL certificate for your domain. Activation usually occurs within a few minutes, but it may depend on external technical factors (including DNS propagation) and, in exceptional cases, take longer.
โฑ๏ธ
DNS propagation: DNS changes can take from a few minutes up to a few hours to be visible globally.

What happens next?

1
You create the CNAME record in your DNS panel
2
Our system detects the pointing and automatically generates the SSL certificate
3
Your app will be accessible from your custom address (e.g. app.yourname.com)
๐Ÿ”ด
Warning. Downgrade from custom domain to subdomain: The custom domain is integrated into your app's internal configuration (user sessions, SSL certificates, indexing). Switching from a custom domain to a standard subdomain requires a complete restructuring of the environment that makes existing data incompatible. App configuration, custom settings and content associated with the domain will be permanently lost. This operation is irreversible: before performing a downgrade, make sure you have saved everything you need.

Horizon Studio

Horizon Studio is the platform that lets you configure your app and manage your content blog.

๐Ÿ’ก
Complete platform: Horizon Studio is much more than a simple blog. It includes an advanced editor, promotional badges, CTAs with external links, view tracking, like system, comments and customizable author profiles โ€” all managed from the frontend.

๐Ÿ“ Content Creation and Management

Everything you need to create and manage your articles, directly from the frontend.

FeatureDescription
Full frontend editorCreate and edit articles with the TinyMCE visual editor (full toolbar). Text formatting, image insertion, links and much more.
Featured imagesUpload with instant preview. The system shows a preview before publishing.
Publishing statusQuick toggle between Published and Draft directly from the article list. No confirmation required: one click to change status.
Permanent deletionDelete articles with explicit confirmation. Associated images are removed automatically.
CommentsToggle on/off for each article. Custom comment template with nested reply support. Enable or disable comments individually for each content.

๐Ÿท๏ธ Badge System

Each article can be marked with a visual badge shown on the card and in the single post. Badges appear as colored labels overlaid on the featured image.

BadgeMeaningUse case
PromoPromotional offerDiscounts, limited-time offers, promo codes
NuovoNewly published contentHighlight news, recent additions to the catalog
HotPopular contentBest-sellers, current trends, viral content
GratisFree contentFree resources, free guides, trials, giveaways
๐Ÿ“
Where they appear: Badges are visible on the article card in the list, in the author profile and in the single post โ€” always overlaid on the featured image.

๐Ÿ”— CTAs with External Links

Each article can include a Call-To-Action with an external link, perfect for monetizing content and linking to external resources.

Use cases

TypeDescriptionExample
Affiliate linksLink to third-party products/services with commission trackingLinks to Booking.com, Amazon, etc.
Packages and productsLinks to purchase pages, landing pages, e-commerce"Book the vacation package"
Guides and resourcesLink to tutorials, documentation, online courses"Download the PDF guide"
External sitesAny external URL for in-depth info, demos, etc."Visit the partner's site"

How it works in the single post

The CTA is shown as a visible button in the promo box of the single post, with:

  • Label โ€” the button text (e.g. "โ‚ฌ29.99", "Discover", "Book now")
  • Link โ€” opens in a new tab with rel="noopener noreferrer" for security
  • Arrow icon โ€” indicates the exit action to the external site

๐Ÿ‘ View Tracking

The view counter is automatic and active by default for all articles. No configuration required.

FeatureDetail
Automatic counterThe counter is incremented automatically on each visit to the single post.
Display in the listThe count is shown on each article card with the ๐Ÿ‘ icon.
No configurationTracking is active by default for all published articles.

๐Ÿ‘ค Profile Views

The view counter for author/influencer profiles is automatic and active by default. No configuration required.

FeatureDetail
Automatic counterThe counter is incremented automatically on each visit to the author/influencer's profile.
Display in the profileThe count is shown on the author/influencer profile page with the ๐Ÿ‘ icon.
No configurationTracking is active by default for all published author/influencer profiles.

โค๏ธ Like System

Public appreciation system, no login required. Works for all visitors, including anonymous ones.

FeatureDetail
Public likesNo login required. Anonymous visitors can like any article.
Duplicate preventionThe like state is saved in the browser to prevent multiple likes from the same device.
Visual feedbackThe heart fills and the counter updates in real time with a smooth animation.
Public endpointAccessible by both authenticated users and anonymous visitors. No authentication required.

๐Ÿ‘ค Customizable Author Profiles

Each author has a fully customizable public profile page, visible to all visitors.

ElementDescription
Hero imageFull-width banner with gradient overlay. The image covers the entire top section of the profile.
AvatarCircular image overlaid on the hero. It becomes the author's visual symbol across the entire site.
Bio HTMLDescription with rich formatting (bold, links, lists). Supports full HTML for a professional bio.
NicknameCustom display name, independent from the username.
Custom colors6 customizable colors (background, buttons, text, cards) + image rounding. Each profile can have its own unique style.
Article gridAll published posts by the author, shown in a grid with badges and featured price on each card.
๐ŸŽจ
Total customization: Author profiles are completely independent. Each author can choose their own colors, hero and style โ€” creating a unique visual identity within the platform.

App Configuration

All fields are already pre-filled with optimal values. Change only what you want to customize. You can always return to the original values with the Reset button.

๐Ÿ’ก
You don't have to fill everything! The default values are already optimal for most users. Customize only what makes your app unique.
๐Ÿ”’
Fields and plans: Some fields depend on the subscribed plan (Starter, Premium, Pro). Fields locked by the plan are not editable. This guide shows all available fields. Those not accessible will appear disabled in the configuration.
๐ŸŒ
First access: Before you can access your app, you are asked to choose a domain name (e.g. yourname.travelinfluencer.co). To open the app, type that address in your browser's search bar.

branding ยท colors

The visual identity of your app: logo, colors and font.

FieldDefaultWhat it does
App IconURLTravelInfluencer logoThe image that represents your app. PNG format, minimum 512ร—512px. Used as the icon everywhere in the app.

How to add the logo: upload an image from your profile and copy the generated URL, or paste the URL of an online image directly. If images don't load, see the IFRAME and CORS Test section.
Main Background ColorColor#00519CThe main color of your brand. Used in the browser bar and as the theme color.
Splash Background ColorColor#FFFFFFThe background color when the app starts. Usually white or the brand color.
Show all customizable colors

Each color is in #RRGGBB format. The values shown are the defaults.

Surface and Background

FieldDefaultUsage
Primary Color#00519CPrimary buttons, active indicators, AppBar
Surface Color#FFFFFFBackground of cards, dialogs, bottom sheets
Background Color#F7F9FCMain background behind everything
Surface Tint#E8EDF5Semi-transparent backgrounds, switch track
Light Surface Tint#F0F4FALighter variant of surfaceTint

Text

FieldDefaultUsage
Primary Text Color#0F172ATitles and important content
Secondary Text Color#475569Subtitles and complementary info
Tertiary Text Color#94A3B8Hints, placeholders, low-importance info
Disabled Text Color#CBD5E1Disabled elements

States

FieldDefaultUsage
Success Color#16A34AConfirmations, "completed" status
Warning Color#F59E0BWarnings and attention
Error Color#DC2626Main errors
Light Error Color#FEF2F2Light background for error areas
Error Border Color#FECACABorder of error cards/containers
Secondary Error Color#EF9A9ASecondary error color, light background
Error Text Color#E53935Error message text
Dark Error Color#D32F2FDark error color, for important actions

Trip Categories

FieldDefaultUsage
Accommodation CategoryAccommodation colorHotels, B&Bs, etc.
Transport CategoryTransport colorFlights, trains, etc.
Food CategoryFood colorRestaurants, etc.
Activities CategoryActivities colorTours, excursions
Other CategoryOther colorUnclassifiable expenses

Trip States

FieldUsage
Upcoming Status Color"Upcoming" badge
In Progress Status Color"In progress" badge
Completed Status Color"Completed" badge

Miscellaneous

FieldUsage
Border ColorStandard border for cards and inputs
Light Border ColorLight border for thin separations
Divider ColorDivider lines between sections
Secondary Icon ColorSecondary decorative icons
Overlay BackgroundDark overlay background (popups, dialogs)
Overlay TextText on dark overlay background
Shadow ColorBase shadow color (usually #000000)
Shadow Opacity0.0-1.0Shadow transparency
Text on PrimaryText/icons on top of the primary color
Text on SecondaryText/icons on top of the secondary color
Text on SurfaceText/icons on top of the surface color
Text on ErrorText/icons on top of the error color

app

Basic information: name, version and app identity.

FieldDefaultWhat it does
App NameTextHorizonThe name of your app shown to users: appears in the title, in the bar and everywhere in the app.
App VersionText1.0.0Version number (internal reference).
โ€œPowered Byโ€ TextTextpowered by travelinfluencer.co"powered by" text at the bottom of the info page. Visible only if "Show powered by" is active.
AI Button TextTextHorizonAIThe name of your AI assistant: appears in the bar and on the AI screen. To change the identity, go to the ai section.

links

All links and pages connected to your app.

FieldTypeWhat it does
Website LinkURLLink to your website, Horizon Studio or social (if embedding is possible): shown as an "Explore" button on the info page. Note: the link to your custom website is only available with the Pro plan.
Privacy Policy LinkURLLink to the Privacy Policy page.
Terms & Conditions LinkURLLink to the Terms and Conditions page.
Promo Popup LinkURLURL of the page shown in the promotional popup. Appears X seconds after opening. The page must allow being embedded in an iframe (X-Frame-Options / CSP frame-ancestors header): some third-party sites block embedding and won't display.
Info Header ImageURLHeader image at the top of the info page. Recommended width: 1200px+.

How to add the header image: upload an image from your profile and copy the generated URL, or paste the URL of an online image directly. If images don't load, see the IFRAME and CORS Test section.

services ยท socialLinks

The services shown in the navigation bar (bottom bar) and the social links in the app's side menu (drawer).

๐Ÿ“Œ
Maximum 5 active services (3 on the Starter plan) in the navigation bar. The number of available services depends on the plan. Only the first 5 services with the toggle active will appear in the bottom bar.

Available services

For each service, enter the affiliate link and use the toggle to enable or disable it. The number of available services depends on the plan.

IconService NameWhat to enter in the URL field
โœˆ๏ธFlightsAffiliate link for flight search
๐ŸจHotelsAffiliate link for hotel booking
๐ŸกVacation HomesAffiliate link for vacation homes and apartments
๐Ÿ“ฆPackagesAffiliate link for vacation packages (flight + hotel)
๐Ÿš—CarsAffiliate link for car rental
๐Ÿ›ก๏ธInsuranceAffiliate link for travel insurance
๐Ÿ“ฑeSIMAffiliate link for virtual SIM cards
๐Ÿ—บ๏ธToursAffiliate link for tours, museum tickets and activities
๐ŸšขCruisesAffiliate link for cruises
๐ŸงณLuggage StorageAffiliate link for luggage storage
๐Ÿš‚TrainsAffiliate link for train tickets
๐ŸšŒBusAffiliate link for bus tickets
โ›ด๏ธFerriesAffiliate link for ferries
๐Ÿš•TaxiAffiliate link for taxi booking
๐Ÿ›บAirport TransferAffiliate link for airport transfers
๐Ÿ”’VPNAffiliate link for VPN services
๐Ÿฝ๏ธRestaurantsAffiliate link for restaurant reservations
โ›ท๏ธEquipment RentalAffiliate link for sports equipment rental
๐Ÿ›ฅ๏ธYachtsAffiliate link for yacht and boat rental
๐ŸšCamperAffiliate link for camper and RV rental
๐Ÿ“‹Book NowLink to the generic booking page
๐Ÿ›๏ธBuy NowLink to the purchase page
๐ŸšฒBikeAffiliate link for bicycle rental
๐Ÿ๏ธMotorcycleAffiliate link for motorcycle rental
๐Ÿ”‘Rent NowAffiliate link for generic rental
๐Ÿท๏ธDealsAffiliate link for deals and offers
๐Ÿ’†SpaAffiliate link for spa and wellness centers
๐ŸŽซEventsAffiliate link for event, concert and show tickets
๐Ÿ›Ž๏ธConciergeLink to concierge and personalized assistance service
๐Ÿ‘ฅGroup TravelAffiliate link for group travel and organized tours
๐ŸดMenuLink to the menu
๐Ÿ›’ShopLink to the store
๐Ÿ’ฌWhatsAppType whatsapp: opens chat with the number set in Business
โœ‰๏ธEmailType email: opens email client with the business address
๐Ÿ“žPhoneType phone: opens dialer with the business number
๐Ÿ’ฌ
Special URLs: For WhatsApp, Email and Phone, use whatsapp, email, phone respectively as the URL: the app will automatically open the correct application. The contact information for these fields is set in the "business" section.

Social Platforms (visible in the app's side menu)

IconPlatformWhat to enter in the URL field
โ–ถ๏ธYouTubeYouTube channel URL, e.g. https://youtube.com/@yourchannel
๐ŸŽตTikTokTikTok profile URL, e.g. https://tiktok.com/@yourprofile
๐Ÿ“ธInstagramInstagram profile URL, e.g. https://instagram.com/yourprofile
๐Ÿ‘FacebookFacebook page URL, e.g. https://facebook.com/yourpage
๐ŸฆX (Twitter)X profile URL, e.g. https://x.com/yourprofile
๐Ÿ’ผLinkedInLinkedIn page or profile URL, e.g. https://linkedin.com/company/your-company
๐Ÿ“ŒPinterestPinterest profile or board URL, e.g. https://pinterest.com/yourprofile
๐ŸŽงSpotifySpotify profile or playlist URL, e.g. https://open.spotify.com/user/yourprofile
๐ŸŽถApple MusicApple Music profile URL, e.g. https://music.apple.com/yourprofile
โ˜๏ธSoundCloudSoundCloud profile URL, e.g. https://soundcloud.com/yourprofile
๐Ÿ“ฆAmazonAmazon store or storefront URL, e.g. https://amazon.com/shop/yourprofile
๐ŸŽฌVimeoVimeo profile URL, e.g. https://vimeo.com/yourprofile

ai

Configure the behavior of your integrated AI assistant. The model used is LFM by Liquid AI, running entirely on-device: no data is sent to external servers.

FieldDefaultWhat it does
AI Temperature0.0-1.00.2How creative the AI is. 0 = precise and repetitive, 1 = creative and variable. Recommended: 0.1-0.35.
AI System PromptText-The instructions that define your AI's behavior. You can structure the prompt with XML tags and use these special placeholders:
<identity> = assistant's identity and role
<rules> = behavioral rules and constraints
<context> = dynamic context (trips and links)
<user_trips> = list of user's trips
<app_links> = links to active services

ui

Controls the visual appearance of the interface: navigation bar, icons, shadows and more.

FieldDefaultWhat it does
Island Bottom BarYes/NofalseNavigation bar style: active = floating "island" bar with rounded edges, disabled = classic bar attached to the edge.
Bottom Bar LabelsYes/NotrueShows the text under the icons in the bar. Disabled = icons only.
Show AIYes/NotrueShows the AI assistant button in the bar.
Show My TripsYes/NotrueShows the "My Trips" tab in the bar.
Loading Indicator ShapeTextCircleThe shape of the loading animation. See all available styles โ†“
Show advanced graphic settings
FieldDefaultWhat it does
Icon HighlightYes/NofalseAdds a colored background behind the active icon in the bar.
Show โ€œPowered Byโ€Yes/NotrueShows the "powered by" text at the bottom of the info page.
Business Info CardYes/NotrueShows the business information card on the info page.
Outlined IconsYes/NotrueIcon style: active = outline only, disabled = filled.
Input Field BordersYes/NofalseShows the border on input fields. Active = fields with visible border, disabled = fields without border.
Show Promo PopupYes/NotrueEnables the promotional popup after X seconds.
Popup Delay (s)Number15Seconds to wait before showing the popup.
Button RadiusPixel30.0Rounded corners of buttons. 0 = square, 30+ = very rounded.
Card RadiusPixel30.0Rounded corners of cards. Same principle as buttonRadius.
Elevation0.0+5.0Shadow intensity on cards and floating elements. 0 = no shadow.

redirect

The transition animation when the app opens an external link.

FieldDefaultWhat it does
Redirect OverlayYes/NotrueShows a dark transition overlay before opening external links.
Overlay Duration (ms)ms800Duration of the overlay in milliseconds. Typical values: 500-1500.

business

Business information shown on your app's info page.

FieldTypeWhat it does
WhatsApp NumberTextWhatsApp numberNumber for quick contact. International format: +39123456789
EmailEmailContact emailThe email where customers can reach you.
Phone NumberTextPhonePhone number. International format: +39123456789
About DescriptionTextFree textThe "About Us" description of your business.
AddressTextAddressThe legal address of your company.
VAT NumberTextVAT numberVAT number / Tax ID.
Opening HoursTextHoursYour business opening hours.

network

How your app presents itself to the rest of the web.

FieldDefaultWhat it does
User AgentText-The "name" your app uses to identify itself to websites. Recommended format: AppName/1.0 (email@example.com)
Default CurrencyTextEURDefault currency for trips. ISO code: EUR, USD, GBP, JPY, etc.
map (advanced)

Most users don't need to change these settings. The map uses OpenStreetMap.

FieldDefaultWhat it does
Default LatitudeNumber41.9028Latitude of the map center on opening (default: Rome).
Default LongitudeNumber12.4964Longitude of the map center on opening (default: Rome).
Initial ZoomNumber3.0Initial zoom. Low values = continent view, high values = street view.
Selected Location ZoomNumber5.0Zoom when you select a location from the list.
Marker SizePixel40.0Size of markers on the map.
Route Line WidthPixel3.0Thickness of the line connecting route points.
Selection ZoomNumber15.0Zoom for precise address selection.
๐Ÿ’ก
Remember: you always have the Reset button to return to the default values! You can't "break" anything: everything goes back to how it was with one click.

Font Guide

Your app's fonts are loaded from Google Fonts. Use the exact name as it appears on Google Fonts: even one different letter and the font won't load.

โš ๏ธ
Warning: The name must match exactly the one on Google Fonts, including spaces and capitalization. If the font doesn't exist, the system font will be used.

The two font fields

FieldWhat it controls
Body FontThe font for all text in the app: paragraphs, descriptions, lists, buttons. Usually a simple, readable font.
Title FontThe font for titles: AppBar, section titles, logo. Usually a more decorative or bold font.

Popular fonts: click to view on Google Fonts

๐Ÿ”
Can't find the font you're looking for? Visit fonts.google.com: there are over 1500 free fonts. Remember to copy the exact name!

Loading Indicators

Choose the loading animation for your app. Each style has a name โ€” enter it in the Loading Indicator Shape field of the ui section.

Circle
Default
FadingCircle
ThreeBounce
DoubleBounce
Wave
Pulse
RotatingCircle
FadingFour
DualRing
HourGlass
PouringHourGlass
PouringHourGlassRefined
Ripple
DancingSquare
CubeGrid
Ring
SpinningCircle
ChasingDots
ThreeInOut
FoldingCube
PumpingHeart
WanderingCubes
FadingGrid
SpinningLines
SquareCircle
PianoWave
RotatingPlain
FadingCube
WaveSpinner
PulsingGrid
๐Ÿ“
How to use it: Choose the animation you prefer and enter the exact name (as shown above) in the Loading Indicator Shape field in the ui section.

๐Ÿ“ฑ How to Install the App

Your app is a PWA (Progressive Web App): it's not downloaded from the App Store or Google Play Store, but installed directly from the browser. It's fast, lightweight and works like a native app. Follow the procedure for your device.

๐Ÿค– Android (Chrome)

To install the app on an Android device, use the Google Chrome browser.

1
Open Chrome on your Android phone.
2
Open your app in the browser โ€” go to your app's address.
3
Tap the menu by pressing the โ‹ฎ icon (three vertical dots) in the top right corner of the screen.
4
Select "Add to Home screen" or "Install app" from the dropdown menu.
5
Confirm by tapping "Add" or "Install" in the confirmation window.
6
Done! The app icon will appear on your Home screen. You can now open it like any other app.
๐Ÿ’ก
Tip: On some Android devices you may see an automatic banner at the bottom prompting you to install the app. In that case, just tap "Install" directly from the banner.

๐ŸŽ iPhone and iPad (Safari)

To install the app on iPhone or iPad, use the Safari browser (not Chrome or other browsers).

1
Open Safari on your iPhone or iPad.
2
Open your app in the browser โ€” go to your app's address.
3
Tap the Share icon by pressing โฌ†๏ธ (the square with the arrow pointing up) in the bottom bar.
4
Scroll down the menu and select "Add to Home Screen".
5
Customize the name of the app if you wish, then tap "Add" in the top right.
6
Done! The app icon will appear on your Home screen. You can now open it like any other app.
โš ๏ธ
Important: On iOS, PWA installation works only from Safari. If you're using Chrome, Firefox or another browser on iPhone, the "Add to Home Screen" option won't be available. Open the link in Safari.

๐Ÿ–ฅ๏ธ Desktop (Chrome, Edge, Brave)

You can also install the app on your computer, with Google Chrome, Microsoft Edge or Brave.

1
Open the browser (Chrome, Edge or Brave) on your computer.
2
Open your app in the browser โ€” go to your app's address.
3
Look for the install icon in the address bar: a โŠ• icon (install symbol) or the โ‹ฎ menu (three dots) in the top right.
4
Click "Install app" or "Install Travelinfluencer" from the menu.
5
Confirm by clicking "Install" in the dialog window.
6
Done! The app will open in a dedicated window without an address bar, and you'll find the icon on your desktop or in the applications menu.
๐Ÿ’ก
Tip: On Chrome and Edge you may see a โŠ• icon directly in the address bar when the PWA is detected. Click it for a quick one-click installation.
โœจ
Why install the app? Once installed, the app will open in full screen without the browser bar, like a native app. You'll get faster access, a smoother experience and the icon always at your fingertips on your Home screen.

Common Issues

Having a problem? The solution is probably below. Changes may take a few minutes to be visible in the app. And remember: you always have the Reset button to return to the original values!

I changed a field but don't see the change

If a field is left empty or removed, the system automatically loads the default value. This means your change may not have been saved correctly.

โœ…
What to do: Make sure the field is filled with a valid value. If the field is empty, the system will use the default: it's not an error, it's by design!
๐Ÿ’ก
Tip: After filling in the field, remember to save the changes, then reload the page to verify.

The color I entered doesn't work

Colors must be in 6-digit HEX format, with the # symbol at the beginning.

FormatExampleWorks?
6-digit HEX#00519Cโœ… Yes
Without #00519CโŒ No
Color nameredโŒ No
RGBrgb(0,81,156)โŒ No
๐ŸŽจ
Need inspiration? Use an online color picker like ColorHunt to find harmonious palettes, then copy the HEX code.

The font doesn't change

The font name must match exactly the one on Google Fonts, including uppercase, lowercase and spaces. If the name is incorrect, the system font will be used.

Entered nameCorrect?
Poppinsโœ… Yes
poppinsโŒ Missing capital letter
Playfair Displayโœ… Yes (with space)
PlayfairdisplayโŒ Missing space
๐Ÿ”—
Available fonts: You can use any font on Google Fonts (over 1500 free). Copy the exact name from the font's page.

A service URL doesn't open

Service URLs must be complete and secure. Here are the rules:

โœ…
Correct URL: Must start with https://, example: https://flights.travelinfluencer.co
โŒ
Insecure URL: URLs starting with http:// (without the "s") are not loaded for security reasons.
๐Ÿ’ฌ
Special URLs: For WhatsApp, Email and Phone simply use whatsapp, email or phone: no https needed, they're handled automatically!

I enabled a service but don't see it in the bar

The navigation bar shows a maximum of 5 active services (3 on the Starter plan). If you've enabled more, only the first 5 will appear in the bar.

๐Ÿ“Œ
Limit: 5 services (3 on the Starter plan). If you have 6 or more services with the toggle active, the sixth and subsequent ones won't be visible. Disable the less important services to make room for the ones you want to show.
๐Ÿ”ข
Priority order: Services are shown in the order they appear in the list. The first 5 active ones win. The others remain available but hidden from the bar.

I uploaded an image to my profile but don't see it in the app

When you upload an image from your profile (logo or cover image), the system generates a URL link for that image. You need to copy that URL and paste it into the correct field in the configuration.

๐Ÿ“‹
How to do it: In your profile, after uploading the image, use the dedicated button to copy the image URL. Then come to the configuration and paste it into the logoUrl field (for the logo) or infoHeaderImageUrl (for the cover image).
โš ๏ธ
Important: The image is not linked automatically: you must copy the URL manually. Without the URL in the field, the app will continue to show the default image.

I want to go back to the subdomain after using a custom domain

Switching from a custom domain to the standard subdomain is possible, but it involves the complete loss of data associated with your app.

๐Ÿ”ด
Why? The custom domain is integrated into the internal configuration (sessions, SSL certificates). The downgrade requires an environment restructuring that makes existing data incompatible.
โš ๏ธ
Before proceeding: Save all the settings and content you need. After the downgrade, app configuration, custom settings and content associated with the domain will be permanently lost. The operation is irreversible.

The site or app is not accessible

If you can't access the site, the app or Horizon Studio, there may be scheduled or emergency maintenance in progress.

๐Ÿ”ง
Scheduled maintenance: Scheduled maintenance is announced in advance via email or through a platform notice. If you received a notification, wait the indicated time and try again.
โšก
Emergency maintenance: In case of technical emergencies or security issues, the service may be temporarily suspended without notice. The team works to restore it as soon as possible.
โœ…
What to do: Check your internet connection. If the connection works, wait a few minutes and reload the page. If the problem persists for more than 30 minutes, contact support.

The app doesn't work properly in incognito/private mode

If you're using the browser in incognito, InPrivate or private browsing mode, many app features may not work properly. This is due to the restrictions browsers apply in this mode.

โš ๏ธ
Limited features: In private browsing, the browser blocks many storage APIs. This means the AI model download (HorizonAI) may not work, "My Trips" data (documents and itineraries) won't be saved permanently, and preferences and configuration won't be retained.
๐Ÿ’ก
Why it happens: Browsers in private mode restrict access to some storage features to protect privacy. The app needs these technologies to work properly.
โœ…
Solution: Open a normal (non-private) browsing window in your browser and access the app from there. All features will be available and your data will be saved correctly.

My site has no navigation or animations in the app

If your site is visible in the app but navigation seems limited or animations don't work, the integration script may be missing in the <head> section of your site.

๐Ÿ“‹
What to do: Add this script before the closing </head> tag on your site:
html
<script src="https://scripts.madebywest.com/horizon-webview-helper.js" data-horizon-webview async></script>
โœ…
Details: This script enables optimized navigation, smooth animations and other advanced features when your site is opened inside the app. It's lightweight, asynchronous and doesn't affect site performance. See the IFRAME and CORS Test โ†’ Advanced Features section for more details.

The app crashes after downloading the AI

If the app closes unexpectedly or freezes after downloading the AI model (HorizonAI), the problem is due to insufficient resources on your device.

โš ๏ธ
Why it happens: HorizonAI runs the AI model locally on the device. This requires a significant amount of RAM and computing power. If your phone has little available memory or an outdated processor, the system can't handle the model and the app crashes.
๐Ÿ’ก
What to do: Try closing all other apps in the background to free up memory, then reopen the app. If the problem persists, your device may not have the minimum hardware resources needed to run the AI. In this case, you can disable the AI from the configuration (set showAI to false): all other app features will continue to work normally.
๐Ÿ›ก๏ธ
You can't break anything! You always have the Reset button to return to the default values with one click. If something doesn't work as it should, use Reset and start over: that's what it's for! If the problem persists even after reset, contact support.

Account Cancellation

If you wish to close your account and remove all your data, follow this procedure carefully. The operation is irreversible: read each step carefully before proceeding.

Step 1. Cancel your subscription

Before you can close your account, you must cancel your active subscription. It's not possible to delete the account if you have an active plan.

โš ๏ธ
Warning: Canceling the subscription doesn't immediately delete your account. Your subscription will remain active until the natural expiration date of the period already paid for.
๐Ÿ’ณ
Suspension or invalid payment: If your subscription is suspended due to failed payment, expired card, or invalid payment method, the exact same procedure applies: after the subscription expires, your account automatically enters the 30-day grace period and is then permanently deleted. You'll receive notification emails before this happens.

Step 2. Grace period (30 days)

Once the subscription expires, your account enters a 30-day grace period. During this period:

๐Ÿ’ก
You can still reactivate: If you change your mind, you can reactivate your subscription at any time during the 30 days and find everything exactly as you left it: configuration, data and settings will be intact.
๐Ÿ”’
Your data is safe: During the grace period, all your data is stored and protected. No information is deleted at this stage.

๐Ÿ’ก Alternative: Switch to the Starter Plan

If you don't want to lose your account but no longer want an expensive subscription, you can switch to the Starter Plan, the free plan. This allows you to:

  • โœ… Preserve your account and profile data
  • โœ… Maintain access to the platform
  • โœ… Avoid automatic cancellation for inactivity or lack of subscription
โš ๏ธ
Warning โ€” App configuration lost: Switching to the Starter Plan is a downgrade and involves deleting and recreating the app configuration folder. All previous custom configurations (layout, content, settings, integrations) will be permanently lost. We recommend saving your configurations before downgrading.

Step 3. Permanent deletion

At the end of the 30-day grace period, all your data will be automatically and permanently deleted. This includes:

  • App configuration and custom settings
  • Profile data and business information
  • Uploaded images (logo, cover)
  • Usage history and statistics
  • Any other data associated with your account
๐Ÿ”ด
Irreversible: This operation is permanent and non-reversible. It applies in all cases: voluntary subscription cancellation, suspension for failed payment, expired card or invalid payment method. Once deleted, data cannot be recovered in any way. If you think you might return in the future, we recommend switching to the Starter Plan to preserve your account (keep in mind that the app configuration will be lost).
๐Ÿ’ฌ
Have doubts? If you have questions about cancellation or need assistance, contact support. We're here to help.