Open Source Short.io Alternatives
A curated collection of the 5 best open source alternatives to Short.io.
The best open source alternative to Short.io is Sink. If that doesn't suit you, we've compiled a ranked list of other open source Short.io alternatives to help you find a suitable replacement. Other interesting open source alternatives to Short.io are: Kutt, Shlink, WR.DO and Slugy.
Short.io alternatives are mainly Marketing & Customer Engagement but may also be Networking & Connectivity. Browse these if you want a narrower list of alternatives or looking for a specific functionality of Short.io.
A link shortener with analytics running entirely on Cloudflare, for individuals and small teams who want to host their own.

Sink shortens links and reports what happened to them, without a server you have to keep alive. Everything runs on Cloudflare's platform, which is both the reason it costs almost nothing to operate and the boundary on where it can be deployed.
The application is built with Nuxt 4, Tailwind CSS and shadcn-vue components. Cloudflare D1 is the authoritative store for links with Workers KV as a write-through read cache, Drizzle ORM sits over the database, Workers Analytics Engine records events, and R2 holds optional JSON snapshots.
The link handling goes well past shortening.
- Link control: expirations, passwords and a warning page for destinations flagged unsafe.
- Smart routing: the same short link redirects visitors differently by device or country.
- Custom slugs: personalized slugs, UTM parameters and optional case-sensitive matching.
- AI assistance: Cloudflare Workers AI can generate a slug and OpenGraph metadata from the target page.
- Analytics: a live 3D globe and event log driven by ten-second polling and client-side replay, exportable as CSV.
Deployment targets Cloudflare Workers, with Pages now deprecated. Browser extensions, Raycast and Apple Shortcuts integrations and an iOS app already exist, and JSON import and export make links portable. The maintainer is clear about scope: businesses wanting multi-user access, a managed service and an SLA are pointed at the commercial product instead.
A self-hosted URL shortener with custom domains, private link statistics, and an admin page for managing users and links.

Kutt is a URL shortener written to be run by the person using it. Links are created, edited, and deleted from the app, statistics stay private to the owner of a link, and custom domains work without a paid tier in the way.
Setup was clearly the design constraint. Node.js 20 or above is the only prerequisite, there is no build step, and the default database is SQLite, with Postgres, MySQL, and MariaDB supported when something larger is needed and Redis available for caching. The first launch prompts for an admin account.
The rest of the feature set covers what a shared instance needs.
- Link controls: custom URLs, passwords, descriptions, and expiration times.
- Access rules: registration and anonymous links can each be disabled, and OpenID Connect handles login.
- Admin page: users and links are managed from inside the application.
- Theming: a custom folder holds CSS, images, and templates that override or replace the defaults.
- REST API: links can be created and managed programmatically.
Compose files are provided for SQLite, SQLite with Redis, Postgres with Redis, and MariaDB with Redis, and an official Docker image is published. Configuration is environment variables, all optional except the JWT secret in production, and any variable can be read from a file instead by appending _FILE to its name. Note that the original kutt.it domain is no longer owned by the project.
PHP self-hosted URL shortener that serves short links from your own domain, driven by a REST API and a command line tool.

Shlink is a self-hosted URL shortener written in PHP, built so the short links you hand out carry your own domain rather than somebody else's. Nothing about the links depends on a third party service staying in business.
There are two ways to drive it and they overlap almost entirely. The command line exposes every operation through a single entry point that is easy to symlink into your path, while a documented REST API covers the same ground for anything programmatic. API key management is the one job reserved for the terminal.
Getting a working install involves a few decisions.
- Distribution: prebundled dist files are published for every supported PHP version, or you build from source with Composer.
- Runtime: PHP 8.4 or 8.5 with the json, curl, pdo, intl, gd and gmp or bcmath extensions.
- Database: MySQL, MariaDB, PostgreSQL, Microsoft SQL Server or SQLite, each with its matching pdo driver.
- Guided setup: an installer script walks through configuration on the server itself, then generates your first API key.
- Web client: a separate front end can be self-hosted or used from the project's own hosted instance.
An official Docker image takes the same configuration through environment variables, which is the shortest path for most people. The apcu extension is recommended unless you plan to run under RoadRunner, and sockets plus bcmath are needed to integrate with RabbitMQ. Geolocation of visits uses MaxMind GeoLite2 data.
Domain services platform for people running their own domains, combining short links, mailboxes, subdomains, file storage and an open API.

WR.DO gathers the small services a domain owner ends up wanting into one self-hosted application. Instead of a link shortener here, a mailbox provider there and an object storage console somewhere else, a single instance covers short links, email, DNS records, files and an API across all of them.
It is a Next.js and React application written in TypeScript and styled with Tailwind CSS, using Prisma for the database layer, Next-Intl for translations and Resend for outbound mail. Cloudflare does the heavy lifting for DNS records and for inbound email through an Email Worker. Deployment targets Vercel or Docker Compose, and the license is MIT.
Five services sit behind one panel.
- Short links: custom slugs, QR codes, password protection, expiry dates and visit analytics.
- Mailboxes: unlimited addresses on your own domains, with catch-all, Telegram push and API access.
- Subdomains: manage records across several Cloudflare accounts, with an approval workflow for user requests.
- File storage: connect S3 compatible buckets such as R2 or AWS S3, with drag and drop and batch upload.
- Open API: fetch page metadata, take screenshots, generate QR codes and convert pages to Markdown or text.
An admin module sits above all of it, with charts of instance activity, per user quotas and permissions, control over which login methods are enabled, and switches to turn individual services off. Note that the primary README is written in Chinese with an English translation alongside it, and that the default administrator account ships with a published password worth changing at first login.
A link shortener with custom domains, QR codes and click analytics, for teams sharing branded links from a single dashboard.

Slugy shortens links and keeps everything that happens afterwards in the same place. The short link, the QR code generated for it, the clicks it collects and the bio page it appears on are all managed from one dashboard instead of three separate subscriptions.
The app is a Next.js and TypeScript project with Tailwind for styling and Better-Auth for sign in. Prisma talks to a Neon Postgres database, Upstash provides caching, Tinybird stores the analytics events, Resend sends email notifications, and the whole thing deploys to Vercel.
The feature set stays close to the job of sharing a link.
- Link shortening: long links become short, branded ones that read well in a message or a post.
- Custom domains: your own domain serves the short links, so nothing carries someone else's brand.
- QR codes: a scannable code is generated for any link, for print or for a screen.
- Analytics: a dashboard reports click performance with detail behind each link.
- Bio links: a personal page gathers several destinations behind one short address.
The stack leans on managed services, so a self-hosted copy means bringing accounts with the same providers or substituting equivalents for them. Slugy suits a creator or a small team that wants branded short links, QR codes and click data under a domain they own, with the code open for reading and the project supported through sponsorship.