miantiao-me/Sink has 7,274 GitHub stars and 5,393 forks. GitHot measured +7 stars in 24 hours and +20 in 7 days. Last checked 2026-11-13 06:43 UTC. Last push 2026-10-27.
⚡ 간단하고 빠르며 안전한 서버리스 링크 단축 서비스로, 분석 기능을 제공하며 전적으로 Cloudflare에서 실행됩니다.
What you can do
- 🔗 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 optional case-sensitive slug matching through configuration.
측정된 스타 증가
- in 24h
- +7
- in 7 days
- +20
- in 15 days
- 기록 수집 중
- in 1 month
- 기록 수집 중
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
README.md
Original⚡ Sink
A Simple, Speedy, Secure, and Serverless Link Shortener with Analytics, Running Entirely on Cloudflare.
Website · Documentation · API Reference

✨ 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 optional case-sensitive slug matching through configuration.
- 🪄 AI Assistance: Optionally use Cloudflare Workers AI to 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.
- 📊 Near-real-time Analytics: Display a live 3D globe and event logs using 10-second analytics polling and client-side replay, not SSE or WebSocket.
- 🔲 QR Code: Generate QR codes for your short links.
- 📦 Import/Export: Transfer links via JSON and export access analytics via CSV.
- 🌍 Multi-language: Full i18n support for dashboard and redirect pages.
[!TIP] Who is Sink for?
Sink focuses on individuals and small teams who want a simple, self-hosted shortener on Cloudflare.
For professional / business needs (managed service, multi-user, SLA, and more), use S.EE.
🪧 Demo
Experience the demo at Sink.Cool. Log in using the Site Token below:
Site Token: SinkCool
Screenshots
🔀 Sibling versions
Sink and Slite are sibling versions of the same link-management and analytics project. Sink runs on Cloudflare's serverless platform, while Slite runs as a local Node.js 24+/Docker process. They keep features, API contracts, and file organization compatible with each other wherever practical. Neither version is a legacy branch, and Slite is not a fork replacement for Sink.
🧱 Technologies Used
- Framework: Nuxt 4
- Database: Cloudflare D1 is the authoritative link store; Workers KV is a write-through read cache
- ORM: Drizzle ORM
- Analytics Engine: Cloudflare Workers Analytics Engine
- Object Storage: Cloudflare R2 for optional logical JSON snapshots
- AI: Optional Cloudflare Workers AI
- UI Components: shadcn-vue
- Styling: Tailwind CSS
- Deployment: Cloudflare
🚗 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 (Multi-link filtering)
- 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 (deprecated).
⚒️ Configuration
🔌 API
API Docs · Live Scalar Reference for the public demo instance
🤖 AI Skills
Install Sink AI Skills for enhanced coding assistance:
npx skills add miantiao-me/sink
🧰 MCP
Sink serves a built-in MCP endpoint at POST /api/mcp, using the official @modelcontextprotocol/server SDK v2, serving modern clients over the per-request transport and 2025-era clients over a stateless fallback with JSON responses.
Replace the domain below with your own instance, and use the
NUXT_SITE_TOKENfrom your instance's environment variables as the bearer token.
claude mcp add --transport http sink https://sink.cool/api/mcp --header "Authorization: Bearer SinkCool"
Any client that supports an HTTP transport with custom headers can connect the same way:
{
"mcpServers": {
"sink": {
"type": "http",
"url": "https://sink.cool/api/mcp",
"headers": {
"Authorization": "Bearer SinkCool"
}
}
}
}
It exposes tools for managing links (list, search, read, count, tag, create, update, upsert, delete) and for reading analytics (counters, views over time, and top values per dimension). See the integrations documentation for the full list.
🙋🏻 FAQs
💖 Credits
📄 License
☕ Sponsor
관련 프로젝트 살펴보기
Asabeneh/30-Days-Of-Python
30 Days of Python 프로그래밍 챌린지는 Python 프로그래밍 언어를 30일 동안 배우기 위한 단계별 가이드입니다. 이 챌린지는 100일 이상 걸릴 수 있습니다. 자신의 속도에 맞춰 진행하세요. 다음 동영상도 도움이 될 수 있습니다: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,618 스타grafana/grafana
개방적이고 조합 가능한 옵저버빌리티 및 데이터 시각화 플랫폼입니다. Prometheus, Loki, Elasticsearch, InfluxDB, Postgres 등 여러 소스의 메트릭, 로그, 트레이스를 시각화합니다.
77,859 스타redis/redis
실시간 데이터 기반 애플리케이션을 구축하는 개발자에게 Redis는 가장 선호되고, 가장 빠르며, 기능이 가장 풍부한 캐시, 데이터 구조 서버이자 문서 및 벡터 쿼리 엔진입니다.
77,472 스타apache/superset
Apache Superset는 데이터 시각화 및 데이터 탐색 플랫폼입니다.
75,495 스타