Uplinkly Docs Documentation

Landing pages

Hosted Landing Pages

Uplinkly can host your static campaign landings and connect them to branded short links, so a campaign can open an uploaded landing page instead of redirecting only to an external URL.

What Hosted Landings Are

A hosted landing is a static landing page archive uploaded into your Uplinkly account. After the archive is validated and saved, it can be selected as the destination for a short link. When visitors open that short link, Uplinkly serves the landing page tied to that link.

This is useful when you want to keep campaign pages closer to your branded link workflow, preview and edit landing assets in one place, and avoid rebuilding an entire archive every time a small HTML, CSS, JavaScript, or image change is needed.

Current support:

Uplinkly currently supports classic static builds: HTML, CSS, JavaScript, images, fonts, JSON, SVG, and related assets. Server-side code is not supported inside uploaded landing archives.

Required Archive Structure

Upload landings as ZIP archives. The archive must contain an index.html file in the root folder. Related assets can be placed in nested folders.

landing.zip
|-- index.html
|-- assets/
|   |-- style.css
|   |-- app.js
|   `-- images/
|       `-- hero.webp
`-- favicon.ico

The public landing binding uses the generated landing ID. The optional slug is an internal alias that helps you organize landings inside your dashboard.

How Upload Validation Works

Uplinkly treats every uploaded landing as untrusted input. Before a landing is saved, the platform validates the archive structure, file paths, file types, sizes, binary signatures, and suspicious text patterns. The landing is stored only after these checks pass.

Archive checks

ZIP signature, archive size, file count, compression ratio, root index.html, and readable archive entries are checked first.

Path safety

Unsafe paths, directory traversal, absolute paths, hidden system files, and symlink-like entries are rejected to keep extraction controlled.

File type control

Static web assets are allowed. Server-side scripts, executables, archives inside archives, databases, keys, certificates, and large media files are blocked.

Content scanning

Text assets are scanned for risky patterns such as server-side code markers, dangerous protocols, suspicious payloads, and high-risk script injection patterns.

Security-Focused Landing Filters

Landing validation is designed to protect both the platform infrastructure and the user workspace. Even if a landing archive was downloaded from another tracking system, marketplace, template pack, or traffic tool, Uplinkly still checks it before allowing it to be stored and served.

The filter system is intentionally conservative around server-side execution, executable files, unsafe paths, nested archives, private credentials, and suspicious code patterns. At the same time, the filters are refined against real landing examples to reduce false positives for normal static landing behavior.

Security note:

No automated filter can promise perfect detection of every possible threat. Uplinkly combines strict validation rules, file inspection, safe extraction behavior, and continuous filter improvements to reduce risk before a landing is accepted.

AI-Assisted Filter Improvements

Uplinkly uses AI-assisted analysis during filter improvement work. Real-world landing patterns are reviewed to better separate common static landing techniques from risky or malicious behavior. This helps the validation layer become more practical over time: stricter where it matters, and less noisy where legitimate landing code is common.

AI is used as a support tool for research and rule refinement, not as a blind approval mechanism. Final validation still depends on deterministic server-side checks and controlled backend rules before a landing is saved.

Editing Uploaded Landings

After a landing is uploaded, you can open it in the landing editor. The editor lets you update index.html, CSS, JavaScript, JSON, SVG, and other editable text files. You can also upload replacement assets, add new files, and remove files that are no longer needed.

Edits are not trusted automatically. When files are changed, uploaded, or deleted, the final landing state is validated again before the changes are saved. This prevents a previously valid landing from becoming unsafe after editing.

Using Landings in Short Links

When creating a short link, paid users can choose whether the destination is a regular URL or one of their uploaded landings. If a landing is selected, the short link opens the hosted landing instead of redirecting to a full external link.

  1. Upload and validate a landing archive
  2. Open the short link builder
  3. Switch the destination type from URL to Landings
  4. Select a landing by name or landing ID
  5. Choose the domain, marker, name, and preview settings
  6. Create the short link

Goal Tracking Placeholder

Uplinkly landings can use the {trackingdomain} placeholder for campaign goal events. When a short link opens a hosted landing, Uplinkly replaces the placeholder with the tracking endpoint for that link.

fetch('{trackingdomain}', { keepalive: true })

Each request to the generated endpoint can be counted as goalClicks. This allows landing actions, such as button clicks or lead-intent events, to be measured separately from the initial short-link click.

Common Upload Problems

  • The ZIP archive does not contain index.html in the root folder
  • The archive contains unsupported server-side files such as PHP, Python, or shell scripts
  • The archive includes nested ZIP, RAR, 7z, TAR, or GZ files
  • The landing contains large video or audio files that are not supported
  • The archive contains hidden system files, private keys, certificates, or environment files
  • The content scanner detects suspicious script behavior that needs review

Related Pages

These docs are useful after learning how hosted landings work.