Skip to content

Self-hosted alternatives to Cuttly

Cuttly is a hosted URL shortener and link management platform that also offers QR codes, link in bio pages and call to action landing pages. Two listed apps do its main job and run in your own Cloudflare account.

Each answer comes from the app’s README and source code, compared with the features Cuttly describes on its own site.

  • OpenShort.link homepage with Deploy to Cloudflare and View on GitHub buttons

    Branded short links on your own domain, routed by country or device, with QR codes and click analytics

    Deploy
    One-click
    License
    AGPL-3.0
    GitHub stars
    107 stars
    Last commit
  • shrtnr dashboard with 30-day click totals, a clicks-over-time chart, top countries, most clicked links and top domains

    Self-hosted URL shortener with a REST API, typed SDKs and an MCP server, on Workers, D1 and Cloudflare Access

    Deploy
    One-click
    License
    Apache-2.0
    GitHub stars
    30 stars
    Last commit

Cuttly features, app by app

FeatureOpenShort.linkshrtnr
Branded short links on custom domainsYesPartly
Click analytics by device, browser, location and referrerYesYes
Password protection and link expirationPartlyPartly
A/B tests, mobile redirects and retargeting pixelsPartlyNo
Bulk shortening from CSV and a REST APIYesPartly

Self-hosted URL shortener with a REST API, typed SDKs and an MCP server, on Workers, D1 and Cloudflare Access

What a Cuttly user would miss
It has one domain, no CSV bulk creation, link passwords, pixels or UTM generator.
  • Partly Branded short links on custom domains. One domain per deployment.
  • Yes Click analytics by device, browser, location and referrer. Country, referrer, device, OS and browser.
  • Partly Password protection and link expiration. Link expiry; password links not yet available.
  • No A/B tests, mobile redirects and retargeting pixels. Device routing listed as not yet available.
  • Partly Bulk shortening from CSV and a REST API. REST API and SDKs; import not yet available.

Sources:github.com/oddbit/shrtnr#readme