Skip to main content
Enterprise-grade · For your 15 closest contacts

joe‑links

The same go-link technology used by Fortune 500 companies — now available for your homelab and the small group of people who actually have Tailscale access.
Self-hosted. Single binary. Your friends still won't use it.

joe-links dashboard — a surprisingly professional UI for something only you will use

Streamline your organization's link infrastructure

Studies show that knowledge workers spend 19% of their day searching for information. Your friends spend 100% of their day asking you what the Jellyfin URL is. We can fix one of those.

📱

Stop Texting That URL

go/plex. go/photos. go/nas. Your brother-in-law will still ask for the streaming link, but now you can say two words and hang up.

👋

Onboard Your New "Users"

New friend? Partner? Someone who just got Tailscale access? Drop them a link to go/start and they'll figure the rest out. Probably.

🔄

URLs Change. Shortcuts Don't.

Migrated from Nginx to Caddy? Rebuilt your NAS? Your friends won't notice — the go-links still work. Just update the URL behind the slug. Zero retraining required.

🏷️

Tag Your Entire Self-Hosted Empire

Organize links by service, project, or level of personal embarrassment. Browse by tag to find that obscure Gitea webhook you set up at 2am and never documented.

👥

Co-Owners (Both of You)

Share ownership of a link with your one trusted co-admin. If you ever get hit by a bus, go/homelab will still work for the remaining five users of your platform.

⌨️

Parameterized Shortcuts

go/jellyfin/{show}, go/gh/{repo} — because technically you only have one user asking for these, but making it a template felt really cool.

Powered by a stack your friends will never appreciate

GoLanguage
chiRouter
HTMXFrontend
DaisyUICSS
SQLiteDatabase
PostgreSQLDatabase
MySQLDatabase
OIDCAuth
Single BinaryDeploy

Quick Start

# Create a project directory
mkdir joe-links && cd joe-links

# Create docker-compose.yml
cat > docker-compose.yml << 'EOF'
services:
  app:
    image: ghcr.io/joestump/joe-links:latest
    ports:
      - "8080:8080"
    env_file: .env
    volumes:
      - joe-data:/data
    restart: unless-stopped

volumes:
  joe-data:
EOF

# Create .env with your OIDC provider details
cat > .env << 'EOF'
JOE_DB_DRIVER=sqlite3
JOE_DB_DSN=/data/joe-links.db
JOE_OIDC_ISSUER=https://your-oidc-provider
JOE_OIDC_CLIENT_ID=your-client-id
JOE_OIDC_CLIENT_SECRET=your-client-secret
JOE_OIDC_REDIRECT_URL=https://go.example.com/auth/callback
JOE_ADMIN_EMAIL=you@example.com
EOF

# Start joe-links
docker compose up -d
# Visit http://localhost:8080

View full setup guide →

🤖 joe-links was designed and written by Claude (Anthropic's AI assistant) in collaboration with Joe Stump. The full source code, architecture decisions, and specifications are open source.