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.
Step 1: IFRAME Test
Before changing anything, check whether your site/blog is already ready.
https://www.myblog.com)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.
<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> Fundamental Requirements
http:// (insecure) cannot be loaded.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.
<head> ... </head> tag</head><script src="https://scripts.madebywest.com/horizon-webview-helper.js" data-horizon-webview async></script> 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.
generated automatically
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:
| Field | Value to enter |
|---|---|
| Record Type | CNAME |
| Host / Name | app, or any name you prefer: travel, portal, connect... |
| Destination / Value | connect.travelinfluencer.co |
| TTL | Automatic or 3600 |
Important Notes
connect.travelinfluencer.co. This ensures your service stays active even when our servers are updated.What happens next?
app.yourname.com)Horizon Studio
Horizon Studio is the platform that lets you configure your app and manage your content blog.
๐ Content Creation and Management
Everything you need to create and manage your articles, directly from the frontend.
| Feature | Description |
|---|---|
| Full frontend editor | Create and edit articles with the TinyMCE visual editor (full toolbar). Text formatting, image insertion, links and much more. |
| Featured images | Upload with instant preview. The system shows a preview before publishing. |
| Publishing status | Quick toggle between Published and Draft directly from the article list. No confirmation required: one click to change status. |
| Permanent deletion | Delete articles with explicit confirmation. Associated images are removed automatically. |
| Comments | Toggle 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.
| Badge | Meaning | Use case |
|---|---|---|
| Promo | Promotional offer | Discounts, limited-time offers, promo codes |
| Nuovo | Newly published content | Highlight news, recent additions to the catalog |
| Hot | Popular content | Best-sellers, current trends, viral content |
| Gratis | Free content | Free resources, free guides, trials, giveaways |
๐ 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
| Type | Description | Example |
|---|---|---|
| Affiliate links | Link to third-party products/services with commission tracking | Links to Booking.com, Amazon, etc. |
| Packages and products | Links to purchase pages, landing pages, e-commerce | "Book the vacation package" |
| Guides and resources | Link to tutorials, documentation, online courses | "Download the PDF guide" |
| External sites | Any 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.
| Feature | Detail |
|---|---|
| Automatic counter | The counter is incremented automatically on each visit to the single post. |
| Display in the list | The count is shown on each article card with the ๐ icon. |
| No configuration | Tracking 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.
| Feature | Detail |
|---|---|
| Automatic counter | The counter is incremented automatically on each visit to the author/influencer's profile. |
| Display in the profile | The count is shown on the author/influencer profile page with the ๐ icon. |
| No configuration | Tracking 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.
| Feature | Detail |
|---|---|
| Public likes | No login required. Anonymous visitors can like any article. |
| Duplicate prevention | The like state is saved in the browser to prevent multiple likes from the same device. |
| Visual feedback | The heart fills and the counter updates in real time with a smooth animation. |
| Public endpoint | Accessible 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.
| Element | Description |
|---|---|
| Hero image | Full-width banner with gradient overlay. The image covers the entire top section of the profile. |
| Avatar | Circular image overlaid on the hero. It becomes the author's visual symbol across the entire site. |
| Bio HTML | Description with rich formatting (bold, links, lists). Supports full HTML for a professional bio. |
| Nickname | Custom display name, independent from the username. |
| Custom colors | 6 customizable colors (background, buttons, text, cards) + image rounding. Each profile can have its own unique style. |
| Article grid | All published posts by the author, shown in a grid with badges and featured price on each card. |
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.
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.
| Field | Default | What it does |
|---|---|---|
App IconURL | TravelInfluencer logo | The 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 | #00519C | The main color of your brand. Used in the browser bar and as the theme color. |
Splash Background ColorColor | #FFFFFF | The 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
| Field | Default | Usage |
|---|---|---|
Primary Color | #00519C | Primary buttons, active indicators, AppBar |
Surface Color | #FFFFFF | Background of cards, dialogs, bottom sheets |
Background Color | #F7F9FC | Main background behind everything |
Surface Tint | #E8EDF5 | Semi-transparent backgrounds, switch track |
Light Surface Tint | #F0F4FA | Lighter variant of surfaceTint |
Text
| Field | Default | Usage |
|---|---|---|
Primary Text Color | #0F172A | Titles and important content |
Secondary Text Color | #475569 | Subtitles and complementary info |
Tertiary Text Color | #94A3B8 | Hints, placeholders, low-importance info |
Disabled Text Color | #CBD5E1 | Disabled elements |
States
| Field | Default | Usage |
|---|---|---|
Success Color | #16A34A | Confirmations, "completed" status |
Warning Color | #F59E0B | Warnings and attention |
Error Color | #DC2626 | Main errors |
Light Error Color | #FEF2F2 | Light background for error areas |
Error Border Color | #FECACA | Border of error cards/containers |
Secondary Error Color | #EF9A9A | Secondary error color, light background |
Error Text Color | #E53935 | Error message text |
Dark Error Color | #D32F2F | Dark error color, for important actions |
Trip Categories
| Field | Default | Usage |
|---|---|---|
Accommodation Category | Accommodation color | Hotels, B&Bs, etc. |
Transport Category | Transport color | Flights, trains, etc. |
Food Category | Food color | Restaurants, etc. |
Activities Category | Activities color | Tours, excursions |
Other Category | Other color | Unclassifiable expenses |
Trip States
| Field | Usage |
|---|---|
Upcoming Status Color | "Upcoming" badge |
In Progress Status Color | "In progress" badge |
Completed Status Color | "Completed" badge |
Miscellaneous
| Field | Usage |
|---|---|
Border Color | Standard border for cards and inputs |
Light Border Color | Light border for thin separations |
Divider Color | Divider lines between sections |
Secondary Icon Color | Secondary decorative icons |
Overlay Background | Dark overlay background (popups, dialogs) |
Overlay Text | Text on dark overlay background |
Shadow Color | Base shadow color (usually #000000) |
Shadow Opacity0.0-1.0 | Shadow transparency |
Text on Primary | Text/icons on top of the primary color |
Text on Secondary | Text/icons on top of the secondary color |
Text on Surface | Text/icons on top of the surface color |
Text on Error | Text/icons on top of the error color |
app
Basic information: name, version and app identity.
| Field | Default | What it does |
|---|---|---|
App NameText | Horizon | The name of your app shown to users: appears in the title, in the bar and everywhere in the app. |
App VersionText | 1.0.0 | Version number (internal reference). |
โPowered Byโ TextText | powered by travelinfluencer.co | "powered by" text at the bottom of the info page. Visible only if "Show powered by" is active. |
AI Button TextText | HorizonAI | The 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.
| Field | Type | What it does |
|---|---|---|
Website Link | URL | Link 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 Link | URL | Link to the Privacy Policy page. |
Terms & Conditions Link | URL | Link to the Terms and Conditions page. |
Promo Popup Link | URL | URL 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 Image | URL | Header 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).
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.
| Icon | Service Name | What to enter in the URL field |
|---|---|---|
| โ๏ธ | Flights | Affiliate link for flight search |
| ๐จ | Hotels | Affiliate link for hotel booking |
| ๐ก | Vacation Homes | Affiliate link for vacation homes and apartments |
| ๐ฆ | Packages | Affiliate link for vacation packages (flight + hotel) |
| ๐ | Cars | Affiliate link for car rental |
| ๐ก๏ธ | Insurance | Affiliate link for travel insurance |
| ๐ฑ | eSIM | Affiliate link for virtual SIM cards |
| ๐บ๏ธ | Tours | Affiliate link for tours, museum tickets and activities |
| ๐ข | Cruises | Affiliate link for cruises |
| ๐งณ | Luggage Storage | Affiliate link for luggage storage |
| ๐ | Trains | Affiliate link for train tickets |
| ๐ | Bus | Affiliate link for bus tickets |
| โด๏ธ | Ferries | Affiliate link for ferries |
| ๐ | Taxi | Affiliate link for taxi booking |
| ๐บ | Airport Transfer | Affiliate link for airport transfers |
| ๐ | VPN | Affiliate link for VPN services |
| ๐ฝ๏ธ | Restaurants | Affiliate link for restaurant reservations |
| โท๏ธ | Equipment Rental | Affiliate link for sports equipment rental |
| ๐ฅ๏ธ | Yachts | Affiliate link for yacht and boat rental |
| ๐ | Camper | Affiliate link for camper and RV rental |
| ๐ | Book Now | Link to the generic booking page |
| ๐๏ธ | Buy Now | Link to the purchase page |
| ๐ฒ | Bike | Affiliate link for bicycle rental |
| ๐๏ธ | Motorcycle | Affiliate link for motorcycle rental |
| ๐ | Rent Now | Affiliate link for generic rental |
| ๐ท๏ธ | Deals | Affiliate link for deals and offers |
| ๐ | Spa | Affiliate link for spa and wellness centers |
| ๐ซ | Events | Affiliate link for event, concert and show tickets |
| ๐๏ธ | Concierge | Link to concierge and personalized assistance service |
| ๐ฅ | Group Travel | Affiliate link for group travel and organized tours |
| ๐ด | Menu | Link to the menu |
| ๐ | Shop | Link to the store |
| ๐ฌ | Type whatsapp: opens chat with the number set in Business | |
| โ๏ธ | Type email: opens email client with the business address | |
| ๐ | Phone | Type phone: opens dialer with the business number |
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)
| Icon | Platform | What to enter in the URL field |
|---|---|---|
| โถ๏ธ | YouTube | YouTube channel URL, e.g. https://youtube.com/@yourchannel |
| ๐ต | TikTok | TikTok profile URL, e.g. https://tiktok.com/@yourprofile |
| ๐ธ | Instagram profile URL, e.g. https://instagram.com/yourprofile | |
| ๐ | Facebook page URL, e.g. https://facebook.com/yourpage | |
| ๐ฆ | X (Twitter) | X profile URL, e.g. https://x.com/yourprofile |
| ๐ผ | LinkedIn page or profile URL, e.g. https://linkedin.com/company/your-company | |
| ๐ | Pinterest profile or board URL, e.g. https://pinterest.com/yourprofile | |
| ๐ง | Spotify | Spotify profile or playlist URL, e.g. https://open.spotify.com/user/yourprofile |
| ๐ถ | Apple Music | Apple Music profile URL, e.g. https://music.apple.com/yourprofile |
| โ๏ธ | SoundCloud | SoundCloud profile URL, e.g. https://soundcloud.com/yourprofile |
| ๐ฆ | Amazon | Amazon store or storefront URL, e.g. https://amazon.com/shop/yourprofile |
| ๐ฌ | Vimeo | Vimeo 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.
| Field | Default | What it does |
|---|---|---|
AI Temperature0.0-1.0 | 0.2 | How 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.
| Field | Default | What it does |
|---|---|---|
Island Bottom BarYes/No | false | Navigation bar style: active = floating "island" bar with rounded edges, disabled = classic bar attached to the edge. |
Bottom Bar LabelsYes/No | true | Shows the text under the icons in the bar. Disabled = icons only. |
Show AIYes/No | true | Shows the AI assistant button in the bar. |
Show My TripsYes/No | true | Shows the "My Trips" tab in the bar. |
Loading Indicator ShapeText | Circle | The shape of the loading animation. See all available styles โ |
Show advanced graphic settings
| Field | Default | What it does |
|---|---|---|
Icon HighlightYes/No | false | Adds a colored background behind the active icon in the bar. |
Show โPowered ByโYes/No | true | Shows the "powered by" text at the bottom of the info page. |
Business Info CardYes/No | true | Shows the business information card on the info page. |
Outlined IconsYes/No | true | Icon style: active = outline only, disabled = filled. |
Input Field BordersYes/No | false | Shows the border on input fields. Active = fields with visible border, disabled = fields without border. |
Show Promo PopupYes/No | true | Enables the promotional popup after X seconds. |
Popup Delay (s)Number | 15 | Seconds to wait before showing the popup. |
Button RadiusPixel | 30.0 | Rounded corners of buttons. 0 = square, 30+ = very rounded. |
Card RadiusPixel | 30.0 | Rounded corners of cards. Same principle as buttonRadius. |
Elevation0.0+ | 5.0 | Shadow intensity on cards and floating elements. 0 = no shadow. |
redirect
The transition animation when the app opens an external link.
| Field | Default | What it does |
|---|---|---|
Redirect OverlayYes/No | true | Shows a dark transition overlay before opening external links. |
Overlay Duration (ms)ms | 800 | Duration of the overlay in milliseconds. Typical values: 500-1500. |
business
Business information shown on your app's info page.
| Field | Type | What it does |
|---|---|---|
WhatsApp NumberText | WhatsApp number | Number for quick contact. International format: +39123456789 |
EmailEmail | Contact email | The email where customers can reach you. |
Phone NumberText | Phone | Phone number. International format: +39123456789 |
About DescriptionText | Free text | The "About Us" description of your business. |
AddressText | Address | The legal address of your company. |
VAT NumberText | VAT number | VAT number / Tax ID. |
Opening HoursText | Hours | Your business opening hours. |
network
How your app presents itself to the rest of the web.
| Field | Default | What it does |
|---|---|---|
User AgentText | - | The "name" your app uses to identify itself to websites. Recommended format: AppName/1.0 (email@example.com) |
Default CurrencyText | EUR | Default 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.
| Field | Default | What it does |
|---|---|---|
Default LatitudeNumber | 41.9028 | Latitude of the map center on opening (default: Rome). |
Default LongitudeNumber | 12.4964 | Longitude of the map center on opening (default: Rome). |
Initial ZoomNumber | 3.0 | Initial zoom. Low values = continent view, high values = street view. |
Selected Location ZoomNumber | 5.0 | Zoom when you select a location from the list. |
Marker SizePixel | 40.0 | Size of markers on the map. |
Route Line WidthPixel | 3.0 | Thickness of the line connecting route points. |
Selection ZoomNumber | 15.0 | Zoom for precise address selection. |
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.
The two font fields
| Field | What it controls |
|---|---|
Body Font | The font for all text in the app: paragraphs, descriptions, lists, buttons. Usually a simple, readable font. |
Title Font | The font for titles: AppBar, section titles, logo. Usually a more decorative or bold font. |
Popular fonts: click to view on Google Fonts
Modern and geometric. Great for titles.
Clean and readable. Perfect for body text.
The most used font for digital interfaces.
Geometric and friendly. Very popular.
Elegant and versatile. Great for branding.
Classic and professional. Good readability.
The Android font. Familiar to everyone.
Neutral and very readable. A great classic.
Elegant with serifs. Perfect for luxury titles.
Soft and rounded. Friendly.
Thin and elegant. Very stylish.
Rounded and playful. For an informal look.
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.
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.
๐ iPhone and iPad (Safari)
To install the app on iPhone or iPad, use the Safari browser (not Chrome or other browsers).
๐ฅ๏ธ Desktop (Chrome, Edge, Brave)
You can also install the app on your computer, with Google Chrome, Microsoft Edge or Brave.
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.
The color I entered doesn't work
Colors must be in 6-digit HEX format, with the # symbol at the beginning.
| Format | Example | Works? |
|---|---|---|
| 6-digit HEX | #00519C | โ Yes |
| Without # | 00519C | โ No |
| Color name | red | โ No |
| RGB | rgb(0,81,156) | โ No |
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 name | Correct? |
|---|---|
Poppins | โ Yes |
poppins | โ Missing capital letter |
Playfair Display | โ Yes (with space) |
Playfairdisplay | โ Missing space |
A service URL doesn't open
Service URLs must be complete and secure. Here are the rules:
https://, example: https://flights.travelinfluencer.cohttp:// (without the "s") are not loaded for security reasons.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.
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.
logoUrl field (for the logo) or infoHeaderImageUrl (for the cover 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.
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.
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.
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.
</head> tag on your site:<script src="https://scripts.madebywest.com/horizon-webview-helper.js" data-horizon-webview async></script> 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.
showAI to false): all other app features will continue to work normally.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.
Step 2. Grace period (30 days)
Once the subscription expires, your account enters a 30-day grace period. During this period:
๐ก 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
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