
Bitly
URL shortening and link management service for creating concise, trackable links with analytics
Discover top open-source software, updated regularly with real-world adoption signals.

Self-hosted URL shortener with custom domains and API
Kutt provides a modern, self-hosted URL shortening service supporting custom domains, password-protected links, private analytics, and a RESTful API, with zero-config setup and multiple database options.

Kutt is a modern URL shortening service designed for self‑hosting. It lets you create short links, assign custom aliases, set passwords, expiration dates, and view private click statistics. An admin interface provides full control over users and links, while a RESTful API enables programmatic access.
The application runs on Node.js 20+ and works with SQLite out of the box, or with PostgreSQL, MySQL/MariaDB, and optional Redis caching. Installation requires only npm install and a database migration, and Docker Compose files are supplied for quick containerized deployment. Configuration is handled via environment variables, including JWT secret, domain settings, and feature toggles such as registration control and rate limiting.
Kutt supports custom domains and theming, allowing organizations to brand their short URLs. While HTTPS for custom domains must be provisioned externally, the platform offers flexibility for scaling, database choice, and integration into existing workflows.
When teams consider Kutt.it, these hosted platforms usually appear on the same shortlist.
Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.
Company branding short links
Create branded URLs on a custom domain, track clicks internally, and enforce password protection for sensitive campaigns.
API‑driven link generation for apps
Integrate the RESTful API to programmatically shorten URLs from internal tools or mobile apps, with custom aliases and expiration.
Internal documentation shortcuts
Provide employees with short, private links to internal resources, with analytics to monitor usage.
Self‑hosted analytics for marketing
Collect click data without sharing with third‑party services, keeping user privacy and compliance.
SQLite (default), PostgreSQL, and MySQL/MariaDB via the DB_CLIENT environment variable.
No build step is required; after installing dependencies you can start the app directly with npm run dev or npm start.
Kutt does not provision certificates; you must configure TLS on your domain (e.g., via a reverse proxy) and set CUSTOM_DOMAIN_USE_HTTPS to true.
Yes, set DISALLOW_REGISTRATION or DISALLOW_ANONYMOUS_LINKS environment variables to control registration and anonymous link creation.
Enable rate limiting with ENABLE_RATE_LIMIT; it uses Redis if enabled, otherwise falls back to in‑memory storage.
Project at a glance
ActiveLast synced 4 days ago