A Simple / Speedy / Secure Link Shortener with Analytics, 100% run on Cloudflare. https://Sink.Cool
Find a file
2026-06-06 20:05:54 +08:00
.github refactor: consolidate issue workflows into single assistant 2026-02-11 19:27:09 +08:00
.vscode feat: Add internationalization (i18n) support 2025-03-03 11:21:39 +08:00
app feat: add custom scrollbar styles for better UI experience 2026-05-17 13:01:44 +08:00
docs fix: improve iframe cloaking compatibility 2026-06-06 20:04:38 +08:00
i18n feat: add duplicate URL detection in link editor #299 2026-06-06 18:24:20 +08:00
layers/dashboard feat: add duplicate URL detection in link editor #299 2026-06-06 18:24:20 +08:00
public perf(globe): optimize loading and texture rendering 2026-02-09 19:23:25 +08:00
scripts perf(globe): optimize loading and texture rendering 2026-02-09 19:23:25 +08:00
server fix: improve iframe cloaking compatibility 2026-06-06 20:04:38 +08:00
shared feat: add duplicate URL detection in link editor #299 2026-06-06 18:24:20 +08:00
skills/sink docs: enhance documentation and API with new features including AI OpenGraph metadata generation, password protection, and smart routing 2026-05-10 11:18:01 +08:00
tests fix: improve iframe cloaking compatibility 2026-06-06 20:04:38 +08:00
.editorconfig feat: init 2024-05-25 08:09:30 +08:00
.env.example fix: disable notFoundRedirect default value 2026-02-09 19:27:13 +08:00
.gitignore feat: add device redirect and OpenGraph customization 2026-02-01 14:09:51 +08:00
.mcp.json refactor: Refactor by Opus 2026-01-09 20:15:19 +08:00
.node-version chore: Keep @nuxthub/core version below v0.10, remove nuxthub dependency in next release. 2026-01-08 18:37:42 +08:00
.npmrc feat: add "Buy me a coffee" donation link 2026-02-05 21:52:55 +08:00
AGENTS.md feat: refactor authentication token handling, add validation utilities, and enhance form components for better user experience 2026-05-10 00:11:57 +08:00
CLAUDE.md chore: remove AGENT.md and update references to AGENTS.md 2025-11-15 15:21:20 +08:00
CODE_OF_CONDUCT.md feat: add Contributor Covenant Code of Conduct 2024-10-18 12:04:06 +08:00
components.json feat: update nuxt and shadcn-vue 2026-01-17 13:24:55 +08:00
eslint.config.mjs feat: add automatic daily KV backup to R2 storage 2026-01-18 16:52:06 +08:00
LICENSE feat: init 2024-05-25 08:09:30 +08:00
nuxt.config.ts feat: add AI-powered OpenGraph metadata generation to link editor 2026-05-07 08:27:25 +02:00
package.json 0.2.10 2026-05-12 19:33:08 +08:00
pnpm-lock.yaml chore: add deprecation notice for unplugin-vue-router package 2026-05-09 23:03:46 +08:00
pnpm-workspace.yaml build(nuxt): Upgrade Nuxt-related dependencies and streamline the configuration. 2025-08-10 11:18:22 +08:00
README.md docs: enhance documentation and API with new features including AI OpenGraph metadata generation, password protection, and smart routing 2026-05-10 11:18:01 +08:00
renovate.json feat: init 2024-05-25 08:09:30 +08:00
skills-lock.json feat: add skills-lock.json with initial skill definitions and computed hashes 2026-05-09 23:36:18 +08:00
tsconfig.json refactor: move type definitions to schema files 2026-02-03 12:14:15 +08:00
vitest.config.ts refactor: move type definitions to schema files 2026-02-03 12:14:15 +08:00
worker-configuration.d.ts feat: add automatic daily KV backup to R2 storage 2026-01-18 16:52:06 +08:00
wrangler.jsonc feat: enable observability logs and traces 2026-02-02 20:27:33 +08:00

Sink

A Simple / Speedy / Secure Link Shortener with Analytics, 100% run on Cloudflare.

miantiao-me/Sink | Trendshift Featured on Hacker News Featured|HelloGitHub Uneed Badge

DeepWiki Cloudflare Nuxt Tailwind CSS shadcn/ui

Hero


Features

  • 🔗 URL Shortening: Compress your URLs to their minimal length.
  • 📈 Analytics: Monitor link analytics and gather insightful statistics.
  • ☁️ Serverless: Deploy without the need for traditional servers.
  • 🎨 Customizable Slug: Support personalized slugs, UTM parameters, and case sensitivity.
  • 🪄 AI Assistance: Generate slugs and OpenGraph metadata from page content.
  • Link Control: Set expirations, passwords, and unsafe-link warning pages.
  • 📱 Smart Routing: Redirect visitors by device or country.
  • 🖼️ Social Preview: Customize social previews with titles, descriptions, and images.
  • 📊 Real-time Analytics: Live 3D globe and real-time event logs.
  • 🔲 QR Code: Generate QR codes for your short links.
  • 📦 Import/Export: Bulk link migration via JSON and access analytics via CSV.
  • 🌍 Multi-language: Full i18n support for dashboard and redirect pages.

🪧 Demo

Experience the demo at Sink.Cool. Log in using the Site Token below:

Site Token: SinkCool
Screenshots Analytics Links Link Analytics

🧱 Technologies Used

🚗 Roadmap [WIP]

We welcome your contributions and PRs.

  • Browser Extension - Sink Tool
  • Chrome Extension - Sink Quick Shorten
  • Raycast Extension - Raycast-Sink
  • Apple Shortcuts - Sink Shortcuts
  • iOS App - Sink
  • Enhanced Link Management (with Cloudflare D1)
  • Analytics Enhancements (Support for merging filter conditions)
  • Dashboard Performance Optimization (Infinite loading)
  • API, migration, backup, and redirect tests

🏗️ Deployment

Video tutorial: Watch here

We currently support deployment to Cloudflare Workers (recommended) and Cloudflare Pages.

⚒️ Configuration

Configuration Docs

🔌 API

API Docs

🤖 AI Skills

Install Sink AI Skills for enhanced coding assistance:

npx skills add miantiao-me/sink

🧰 MCP

We currently do not support native MCP Server, but we have OpenAPI documentation, and you can use the following method to support MCP.

Replace the domain name in OPENAPI_SPEC_URL with your own domain name.

The API_KEY is the same as the NUXT_SITE_TOKEN in the environment variables.

{
  "mcpServers": {
    "sink": {
      "command": "uvx",
      "args": [
        "mcp-openapi-proxy"
      ],
      "env": {
        "OPENAPI_SPEC_URL": "https://sink.cool/_docs/openapi.json",
        "API_KEY": "SinkCool",
        "TOOL_WHITELIST": "/api/link"
      }
    }
  }
}

🙋🏻 FAQs

FAQs

💖 Credits

  1. Cloudflare
  2. NuxtHub
  3. Astroship
  4. Tailark

Sponsor

  1. Follow Me on X(Twitter).
  2. Become a sponsor to on GitHub.