mirror of
https://github.com/miantiao-me/Sink.git
synced 2026-02-17 22:38:42 +01:00
⚡ A Simple / Speedy / Secure Link Shortener with Analytics, 100% run on Cloudflare.
https://Sink.Cool
analytics
bitly-alternative
cloudflare
hacktoberfest
link-shortener
nuxt
nuxthub
shadcn-ui
tailwindcss
url-shortener
web-analytics
Replaces the duplicate-issues workflow with a more comprehensive issue-assistant that combines multiple functions into one. The new workflow checks both documentation and existing issues, then posts a single consolidated comment when relevant information is found. This reduces noise by avoiding multiple comments and provides a better user experience with documentation references alongside duplicate detection. |
||
|---|---|---|
| .github | ||
| .vscode | ||
| app | ||
| docs | ||
| i18n | ||
| layers/dashboard | ||
| public | ||
| scripts | ||
| server | ||
| shared | ||
| skills/sink | ||
| tests | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .mcp.json | ||
| .node-version | ||
| .npmrc | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| CODE_OF_CONDUCT.md | ||
| components.json | ||
| eslint.config.mjs | ||
| LICENSE | ||
| nuxt.config.ts | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| renovate.json | ||
| tsconfig.json | ||
| vitest.config.ts | ||
| worker-configuration.d.ts | ||
| wrangler.jsonc | ||
⚡ Sink
A Simple / Speedy / Secure Link Shortener with Analytics, 100% run on Cloudflare.
✨ 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 for personalized slugs and case sensitivity.
- 🪄 AI Slug: Leverage AI to generate slugs.
- ⏰ Link Expiration: Set expiration dates for your links.
- 📱 Device Routing: Redirect iOS/Android users to different URLs (App Store links).
- 🖼️ OpenGraph Preview: Custom social media previews with title, description, and image.
- 📊 Real-time Analytics: Live 3D globe visualization and real-time event logs.
- 🔲 QR Code: Generate QR codes for your short links.
- 📦 Import/Export: Bulk migration via JSON/CSV files.
- 🌍 Multi-language: Full i18n support for the dashboard.
- 🌙 Dark Mode: Light, dark, and system theme support.
🪧 Demo
Experience the demo at Sink.Cool. Log in using the Site Token below:
Site Token: SinkCool
Screenshots
🧱 Technologies Used
- Framework: Nuxt
- Database: Cloudflare Workers KV
- Analytics Engine: Cloudflare Workers Analytics Engine
- 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 (Support for merging filter conditions)
- Dashboard Performance Optimization (Infinite loading)
- Units Test
🏗️ Deployment
Video tutorial: Watch here
We currently support deployment to Cloudflare Workers (recommended) and Cloudflare Pages.
⚒️ Configuration
🔌 API
🤖 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_URLwith your own domain name.The
API_KEYis the same as theNUXT_SITE_TOKENin 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"
}
}
}
}
