shouldiselfhost?they tell you if you can — we tell you if you should
THE DECISION LAYER FOR SELF-HOSTING100 APPS UNDER COVERAGEPROTOCOL v1NO VENDOR HAS EVER PAID FOR A RATING
§
LINKS
Bitly logo

Should I self-host Bitly?

$10/mo · Core · alternative: Shlink
RATING
YES
OUTLOOK
NOT ASSIGNED
RATIONALE

$10/mo for a URL redirect table is the purest markup on this site. Shlink does the whole job list from SQLite on the smallest box you own.

WHAT YOU LOSE
01

The bit.ly domain itself — recognizable short links are their real moat; yours is only as trusted as your domain

02

Their uptime SLA: a dead redirect server breaks every link you ever shared

WHAT YOU'RE PAYING FOR

short links on a custom domain · click analytics · QR codes · link management API

Self-Hosting Facts
1 app per panel · Bitly
Assumes 1 seat on 1 always-on box you already run
Amount per month% of sub *
Subscription$10.00
VPS share0.505%
Storage + backup0.000%
Your hours · 10 min @ $203.3333%
Self-hosted all-in3.8338%
Effective markup2.6×
Setup · 35 min measured$11.67 once
Break-even1.9 months
VERDICT
YES
OUTLOOK
NOT ASSIGNED

* Percent of the subscription price. Your time is priced at the slider's rate — $0/h ("my homelab time is free and I love it") is a legitimate position. Every number is derived from the record, never hand-written. Price source, checked 2026-08-05.

Runs comfortably on a Raspberry Pi.

01
ALTERNATIVES
Ranked alternatives
01Shlink logo
ShlinkYour own short-link domain, with visit counts and a REST API the existing apps already speak.
shlinkio/shlink · ★ 5,197 · 50d
Shlink running from the boot-verified compose file
Shlink, running from the compose file on this page — screenshot from our verified instance, not marketing material.
02
EVIDENCE
PROTOCOL
v1
VERIFIED BY
zernonia
REVIEWED
10 AUG 2026
SETUP MEASURED
35 MIN
AI ASSISTANT
CLAUDE-CODE · STATED
WHAT BROKE
01

Shlink wants DEFAULT_DOMAIN set at first boot; changing it later means regenerating existing short URLs

THE TESTED COMPOSE FILE — CI-BOOTED WEEKLY
# Shlink — self-hosted link shortener (replaces Bitly)
# SQLite backend: zero extra containers. GeoLite / QR extras not enabled here.
services:
  shlink:
    image: shlinkio/shlink:stable
    container_name: shlink
    restart: unless-stopped
    environment:
      DEFAULT_DOMAIN: "localhost:8082"
      IS_HTTPS_ENABLED: "false"
    ports:
      - "8082:8080"
    volumes:
      - shlink-data:/etc/shlink/data
    healthcheck:
      test: ["CMD-SHELL", "curl -sf http://localhost:8080/rest/health || exit 1"]
      interval: 5s
      timeout: 5s
      retries: 24
      start_period: 20s

volumes:
  shlink-data:

Want a guided install instead? caniselfhostit.com/bitly has AI-agent prompts that assume a bare machine — that's their half of the stool, and it's good.

FULL TIMED LOG
# Timed setup log: Bitly → Shlink

**Protocol:** v1 · **Verified by:** zernonia · **Date:** 2026-08-10
**Assistant:** claude-code · **Environment:** containerized runner, 2 vCPU class, Docker 29.3 / Compose v5.1

## Timeline

| Step | Time |
|---|---|
| Draft compose (single container, SQLite backend, healthcheck on `/rest/health`) | 8 min |
| **Boot: healthy in 20 s (measured, `compose up --wait`)** | 1 min |
| Core workflow: generate API key, create short link via REST API, follow redirect, read visit stats | 20 min |
| Re-run from clean volumes | 6 min |
| **Total: ~35 min** | |

## Measurements

- Boot to healthy: **20 s** · 1 container (SQLite — no DB container needed at personal scale)
- Idle RAM ~90 MB — Raspberry Pi territory

## What broke

1. **`DEFAULT_DOMAIN` is a commitment.** Set it before creating links; short URLs embed it,
   so changing domains later means the old links are someone else's problem (yours).

## Verdict-relevant notes

- Short links, analytics, QR codes, API: the whole Core-plan job list is covered.
- The honest tradeoff is the redirect server's uptime — every link you ever shared depends on
  it. Put it on your most boring, most stable box.
03
HISTORY
10 AUG 2026UNRATED → YESInitial verdict: purest markup on the site — a redirect table for $120/yr.