Skip to main content

Fully Managed Kutt
as a Service

Deploy Kutt as a fully managed service starting at €9/mo. Get automated backups, SSL, updates, support and monitoring included.

Kutt is an open-source URL shortener — branded short links, click analytics, custom domains, password-protected URLs, link expiration, and a full REST API — combining the convenience of Bitly with the security and control of self-hosted infrastructure. MIT-licensed, built by The Devs Network, with more than 10,600 GitHub stars.

Free 7-day trial  99.9% Uptime SLA  No credit card  Cancel anytime

Free 7-day trial  99.9% Uptime SLA
No credit card  Cancel anytime

Kutt

Kutt

STARTING AT

€9/month
Automated Backups
Monitoring
Automated Updates
Auto SSL

USAGE

Unlimited
Human Support
Custom Domains
Terminal Access
File Manager Access
Deploy in your region 21 locations worldwide
GermanyFinlandNetherlandsUKSwedenUnited StatesCanadaSingaporeJapanAustraliaBrazilSouth Africa+9 more →
Kutt Preview Image

ABOUT THE SOFTWARE

What is Kutt

Kutt is an open-source URL shortener and link-management service released under the MIT license by The Devs Network. It runs on Node.js with a small relational-database footprint, ships as a single Docker container, and gives you the Bitly feature set without the per-seat pricing or interstitial ads.

The project started in 2018. The codebase is around 46% JavaScript and 24% Handlebars, with Express handling HTTP and Knex.js handling database access — it ships supporting SQLite by default, with PostgreSQL, MySQL, and MariaDB as production options. Redis is optional but recommended for the rate-limit store and view cache. The repository has 10,600+ GitHub stars, 1,400+ forks, 874 commits on main, and 62 open issues as of May 2026.

Active maintenance comes from Pouria Ezzati (@poeti8), the original author, and Marvin (@marvin-wtt), the most active 2025 contributor. The project is in steady maintenance mode — one tagged release in 2025, fixes landing on main, no public roadmap promising new headline features. For a URL shortener, that's a feature, not a bug: the surface area is small, the data model is stable, and you don't want surprise major refactors in something that handles every link in your marketing stack.

FEATURES

What Kutt does

Kutt provides the link-management feature set most marketing, product, and editorial teams actually use day-to-day: branded short links, custom-domain hosting, granular click analytics, expiration controls, password-protected URLs, and a REST API for programmatic link creation.

Custom branded domains

Point an unlimited number of branded short-domains at one Kutt instance — go.yourbrand.com, vendor.link, nyt.run — and serve every short link from your domain rather than a shared shortener host.

Custom URL slugs

Choose the short-link target string yourself — /summer-sale, /q3-report, /demo — instead of accepting random alphanumeric IDs. Useful for memorable campaign URLs and post-it-note-friendly demo links.

Password-protected links

Gate any short link behind a password before the redirect. Useful for pre-launch material, internal beta links, and content shared with a single named recipient.

Email verification and SSO

Built-in email-verified signups, plus OIDC SSO for teams running Okta, Authentik, Keycloak, or any standard identity provider. Combine with disable-registration to lock the instance to your team only.

Click analytics per link

Aggregate counts of click events with country (via IP geo), browser, OS, referrer, and date. Stats live in your database, not a third-party tracker, and there is no raw-IP logging by default.

Link expiration and visit caps

Set an expiration timestamp on any link so it returns 404 after a date. Combine with one-time-use tokens for time-bound launches, embargo links, and private share-with-press URLs.

REST API and integrations

A documented HTTP API for programmatic link creation. Community clients in Node, Python, Go, C#, Rust, and Ruby. Native integrations with n8n, ShareX, Alfred, and browser extensions.

QR codes and abuse reports

Generate QR codes for any short link. Built-in malicious-link reporting endpoint so users on your domain can flag abuse without you building a separate reporting tool.

WHAT'S ALWAYS INCLUDED

Every app. Fully managed.
Nothing extra to pay for.

Every app you deploy includes the full managed service — security, backups, updates, and support from day one.

Automatic updates and patches

Apps run the latest stable version. Security patches applied silently, with rollback if needed.

Daily off-site backups

Multiple daily backups in redundant off-site locations. One-click restore if anything goes wrong.

24/7 uptime monitoring

Continuous monitoring with instant alerting. We respond before you notice.

SSL, firewall, DDoS protection

Auto-renewing SSL, hardened firewall rules, DDoS mitigation on every deployment.

Performance and scaling

We monitor resource usage continuously. When your app needs more headroom, we flag it and upgrade with your explicit approval.

Dedicated engineering support

Real engineers on chat. DNS, SMTP & migration help. All included in €9.

WHY MANAGED

Why teams pick managed Kutt

Since February 2025, every free-tier Bitly link routes the audience through an interstitial ad page before reaching its destination. Teams moved to Kutt for ad-free branded links, owned click data, and predictable per-month cost. Managed hosting removes the operational reasons they hadn't moved sooner.

The Bitly change is the trigger most teams cite. Bitly's own support article confirms it: free-tier shortened links now display "an interstitial page that includes a preview of the link destination and an ad" before the redirect happens. The free tier also dropped to 5 links per month. To remove the ad and get a single branded short domain, the entry point is Bitly Core or Growth — and multi-domain, multi-seat use cases land in Enterprise quotes that public benchmarks place in the $500–$3,000 per month range.

The question stops being "should we leave Bitly" and starts being "should we self-host Kutt or pay someone to run it." Self-hosting Kutt is a real option — the docker-compose.yml file is twelve lines — but production Kutt is not the same as docker-compose Kutt.

The sharp edge most teams discover late is custom-domain SSL. Kutt's HTTPS-for-custom-domains feature is a config flag, not an automation. The project's README states it directly: "It's on you to generate SSL certificates for those domains manually." Issue #18 in the Kutt tracker — opened in February 2018 — is still open as of May 2026. The day a branded short-domain serves HTTP-only links, every modern browser throws "Not Secure" at readers and the campaign hard-fails until someone wires Caddy or Traefik with DNS-01 ACME challenges per domain.

On a managed instance, we provision the certificate when you add the domain. We monitor renewal. We run Postgres with connection pooling tuned for redirect traffic, Redis with persistence enabled, and an SMTP relay warmed up so verification emails don't land in spam. By default, Kutt ships none of these tuned for production.

REVIEWS

Hear from customers ​like you​​​​​​​

Successful businesses and professionals around the world rely on DANIAN every day

USE CASES

Three teams who run Kutt on DANIAN

These are representative team types we set up most often. Each starts with the same flat €9 plan.

12-PERSON PERFORMANCE-MARKETING TEAM

Replacing Bitly Growth after the multi-domain math hit Enterprise quotes

Germany region. Three branded short-domains, one per advertiser vertical. Anonymous-link creation disabled, registration locked. n8n watches a Google Sheet of campaign URLs and mints branded links into the sheet. Click data pipes into GA4 via UTM templates. Retention: indefinite, in their Postgres.

5-NEWSROOM EDITORIAL COLLECTIVE

Pulling reader click streams off a US shortener after the February 2025 ad change

Italy region. OIDC SSO via shared Okta tenant; password login disabled entirely. One branded short-domain per newsroom. Postmark wired for transactional email only. Edge cache holds 301s for 60 seconds during breaking-news spikes. Each story auto-mints a short link via CMS webhook through n8n.

22-PERSON B2B SAAS STARTUP

Moving in-product link creation off a per-seat shortener

US region. Single branded domain, go.theirsaas.com. API-key-only mode — no human dashboard accounts. Backend service calls the Kutt REST API to mint per-recipient links in onboarding emails. Click events POST to PostHog for product-analytics correlation. About 3,400 links per month.

COMPARISON

Four ways to run Kutt

The honest math of paying for shortened links — proprietary SaaS by the seat, a VPS plus your time, a home server plus its electricity, or a flat €9 on DANIAN. Every column adds up to a real number; the totals decide it.

 PATHWHAT IT COSTS / MONTHOPERATOR TIME / MONTHBRANDED DOMAIN & ANALYTICS
Bitly
Proprietary SaaS
1 seat: $10/mo Core, no custom domain.

5 seats: $145–$175/mo Growth; multi-domain pushes to Enterprise quote.

10 seats: $290+/mo or Enterprise quote ($500–$3,000+/mo per public benchmarks).
0 hoursCustom domain on Growth+ (1 included). Analytics retention 30–365 days by tier. Free-tier links display an ad interstitial since February 2025.
Self-host on a VPS
DIY managed
$24/mo production-class VPS (2 vCPU / 4 GB).
+$5/mo object-storage backup.
+$15/mo monitoring.
= $44/mo infra + your time.
5–10 hours initial setup. 1–2 hours/month patching, certificate rotation, backup verification, on-call. DB tuning at 25+ users.Unlimited custom domains, but SSL is manual per Kutt Issue #18. Analytics retention = whatever your DB keeps.
Home server
HP ProLiant ML30 Gen10 or similar
Hardware €18–55/mo amortized over 36 months.
+ €17–32/mo electricity.
+ €40–80/mo business uplink with static IP.
+ €10–20/mo off-site backup.
= €85–187/mo + your time.
2–4 hours/month at €60–120/hour = €120–480/mo in time alone.Unlimited custom domains. SSL still manual. Power outage = link outage. Residential ISPs typically block port 80/443 inbound.
DANIAN Managed Kutt€9/month, all-in. Patching, backups, monitoring, SSL on every custom domain, human support. Same at 1, 5, or 10 users.0 hours/monthUnlimited custom domains, auto-SSL on each. Analytics retention = lifetime of the link, in your Postgres.

The math should be obvious without rhetoric. Bitly's per-seat pricing scales linearly with users and multiplicatively with branded domains. Self-host paths shift the cost from money to time and on-call burden. Managed Kutt at €9 stays €9 — the team grows, the campaigns scale, the line item doesn't.

BY INDUSTRY

Kutt for specific industries

Different teams put different pressure on a URL shortener. Affiliate operators want raw link volume and multiple branded domains. Agencies want per-client isolation. SaaS teams want APIs and no per-seat tax. Editorial teams want their readers' click data to stay out of a third party's ad pipeline.

The FTC's 16 CFR Part 255 endorsement guidelines require disclosure of material connection through the redirect chain — so the click-tracking layer can't strip or rewrite affiliate disclosure parameters.

On DANIAN we configure Kutt with DISALLOW_ANONYMOUS_LINKS="true" so only authenticated operators create links, ENABLE_RATE_LIMIT="true" with Redis-backed counters to absorb the scraper traffic that hits affiliate URLs the moment they go live, and per-user daily quotas tuned to operator pace.

Typical workflow: an n8n flow watches a Google Sheet of offer URLs and pushes each new row through Kutt's /api/v2/links endpoint, returning the branded short link back into the spreadsheet for the campaign manager.

A 12-operator team typically generates 2,000–4,000 links per month with no per-link marginal cost — versus a Bitly Enterprise quote that bucket-prices link volume in the four-figures-monthly range per published benchmarks.
Client confidentiality clauses and brand-handoff requirements at contract end mean the client owns their branded short-domain and the historical click data on it.

We configure one Kutt instance per agency with OIDC SSO for staff, custom Handlebars view overrides per-client subdomain so the dashboard wears each client's branding, and UTM-based segmentation tying every link to its client of record.

Typical workflow: when an agency onboards a new client, the DNS team adds the wildcard record, we provision the SSL via the reverse proxy's ACME flow, and the account manager adds the domain to Kutt's settings in under a minute.

A 30-client agency runs 30 separately-branded short-domains on one managed instance — the same workload on Bitly lands in Enterprise-quote territory because multi-domain is gated above Growth.
Enterprise procurement reviews increasingly require third-party data-processor disclosure for every external service that sees customer URLs — and outbound short-link services usually count.

On DANIAN we run Kutt API-key-only (DISALLOW_REGISTRATION=true), Postgres with DB_POOL_MAX tuned for your backend's concurrency, and Redis required for the rate limiter so a scraper hitting one customer's links doesn't degrade redirects for others.

Typical workflow: your backend code calls /api/v2/links to mint a per-recipient short link inside transactional email and in-app notifications; click events POST to your existing eventbus or analytics warehouse.

A startup minting 10,000 links per month from product code would otherwise land on Bitly Premium ($2,388/year) at minimum.
The editorial-firewall principle means a publication's outbound short links cannot push readers through a third-party ad interstitial without breaking the masthead promise.

We configure Kutt with OIDC SSO for journalists, MAIL_ENABLED="true" via a warmed-up transactional relay (no Postfix on a fresh box, no marketing co-mingling), and reverse-proxy edge caching of 301 responses for 60 seconds on hot links during breaking-news traffic spikes.

Typical workflow: the CMS posts a webhook on publish; n8n mints the branded short link and writes it back into the article's social-share metadata.

A newsroom seeing 50,000 clicks per day on a viral story sees zero cost variance — the same load on Bitly free hits an ad interstitial; on Bitly Premium it costs in the low thousands per year.

FAQ

Frequently asked questions

Everything teams ask before signing up — answered straight, without sales speak.

Three groups: technical setup, migration, and how DANIAN works as a service.

01

Technical and configuration

Yes. You add the domain in your dashboard and notify us. Our reverse proxy provisions a Let's Encrypt certificate via DNS-01 ACME challenge within minutes and rotates it on the 60-day cycle. The vanilla Kutt install leaves SSL minting to the operator — Issue #18, open since February 2018. On a managed instance we run that automation for you across every branded domain on the same account.
Not natively. Kutt's data model is admin-versus-user with no workspace concept (GitHub Discussion #532). We work around this with OIDC SSO. Wire your Okta, Authentik, or Keycloak tenant into the OIDC_ISSUER and OIDC_CLIENT_ID config, set DISALLOW_REGISTRATION="true" and DISALLOW_LOGIN_FORM="true", and your team logs in via the IdP with group access managed there.
We set DISALLOW_REGISTRATION="true" and DISALLOW_ANONYMOUS_LINKS="true" by default on every managed instance. Admins are seeded via the ADMIN_EMAILS environment variable. Adding a new operator means adding their email to the admin list, or to your SSO group; they don't sign up themselves.
Aggregate click counts per link with country (via IP geo), browser, OS, referrer, and date. No raw-IP logging by default. Stats live in your managed Postgres database, not in a third-party tracker, and are retained for the lifetime of the link unless you tune DEFAULT_MAX_STATS_PER_LINK (default 5,000 events per link, then truncates).
Expiration and password protection are native. Set a timestamp at link creation and the URL returns 404 after that moment; set a password and visitors hit a prompt before the redirect. A native maximum-visit-count is not built in, but a small webhook or rate-limit rule layered on top covers the use case.
We enable Kutt's rate limiter (ENABLE_RATE_LIMIT=true) with Redis as the shared store across replicas, tune the per-IP and per-token thresholds for your traffic profile, and put edge filtering in front of the redirect endpoint. The Kutt malicious-link report endpoint stays exposed so end-users can flag abuse; we triage reports within one business day.

02

Migration and onboarding

We can activate your app on your own custom domain/subdomain. Examples: mydomain.com, anyword.mydomain.com.
Or, on our randomized free subdomain. Example: 963.apps.danian.cloud
If you wish to use a custom domain/subdomain, select that option when ordering your app (or notify us later). We will send you the required DNS records and if needed, our tech team will modify them for you.
21 datacenter locations across six continents. You choose the region at provisioning. Application data sits in the region you choose; pick whichever is closest to your users or matches your data-residency preference.
Yes. Request a region migration from the dashboard and we run the move in the background. The system emails you when the migration completes; total transfer time depends on data volume but typical instances finish in a few hours. There is no extra charge for a region change.
Yes. Full data export is available at any time, in a portable format you can bring to any infrastructure.

03

Billing, support, and platform

€9 covers everything we do for that app: hardware in the region you choose, daily off-site backups with one-click restore, automatic security patches and version upgrades, 24/7 monitoring, SSL and firewall, and engineering support on Email/LiveChat. There are no setup fees or hidden line items. For more info see our Pricing page.
If you decide to continue, we charge €9/app/month from day 8. If you don't, the trial ends and you can export your data. No card is required for the trial, and we never auto-charge you without explicit consent.
No. The €9/month is flat regardless of how many users log into your app. Add 5 users or 50; the price doesn't change.
24/7 Live chat and email support, both staffed by engineers who run the systems. We handle DNS configuration, SMTP setup, app integrations, performance tuning, troubleshooting, and migration help. Response time is typically under an hour. There is no tier system — every customer gets the same support.
Yes. Cancel from the dashboard. We don't charge a cancellation fee, we don't lock data, and we will export your data to you on request before deletion. data to you on request before deletion.
Every customer instance is backed up daily to a separate region from the primary. We test restores. You can request a restore at any backup point within the retention window — usually 7 days for daily backups.
Your application data sits in the region you choose at provisioning — 21 datacenter locations across six continents. Account-level data (billing, account email, support ticket history) is processed centrally. Application data region is picked by you, per app.
99.9% uptime SLA on every app, every tenant. Service credits are documented at danian.co/service-level-agreement. The status page is located at status.danian.co.
When your tenant approaches the resource ceiling — the base tier holds 1 vCPU/RAM, 30 GB storage — we notify you. Resource upgrades happen with your explicit consent; we will not upgrade your tenant or charge you without it.
We wait. We don't suspend the app or delete your data on the first failed charge. We email you, you fix the card on file, and we continue.
Invoices can be downloaded from the billing dashboard in PDF the day each charge succeeds. EU VAT is added where applicable and the VAT-reverse-charge regime applies for VAT-registered businesses with a valid number.
150+ open-source apps across automation, team chat, file sync, analytics, AI, password management, email marketing, dev tools, project management, smart home, CMS, and federated social. See the full catalog →
Yes. Every instance comes with a web-based terminal and a file manager in your DANIAN management dashboard. Useful for managing your data and customizations.
Resources scale with your usage. If your app needs more vCPU, RAM, or storage, we add it — and we ask first before any change to your plan. €9 is the floor; resource-heavy workloads may price higher, but you'll always know in advance.
Yes. We have both a Partner program and an Affiliate program available. Anybody can sign up.
No contract. No minimum commitment. Cancel anytime from the dashboard with one click. The 7-day free trial requires no credit card. After the trial converts to paid, you can still cancel at any month without notice or penalty.

DEPLOY IN YOUR REGION

21 datacenter locations on six continents

Pick the region closest to your users.

United States, Germany, Finland, Singapore, Australia, Brazil, Canada, Netherlands, UK, Spain, Italy, France, Sweden, Malaysia, India, Japan, Mexico, Poland, South Korea, Chile, South Africa and more coming soon

Global Reach Map

Try managed Kutt for 7 days

No card. Cancel from the dashboard.