No description
Find a file
ccbikai 5f9cd9675d feat(test): migrate to cloudflare worker test suite
Modernizes testing infrastructure with dedicated Cloudflare Workers test pool:

- Replaces Nuxt Test Utils with @cloudflare/vitest-pool-workers
- Adds structured test organization for API endpoints
- Introduces comprehensive testing patterns and examples
- Implements schema-based test data generation with zod-mock
- Enhances test utilities with proper CF Workers environment

The new testing setup provides better isolation, more realistic worker runtime environment, and improved test data management through structured schemas and generators.
2025-05-29 20:54:44 +08:00
.cursor/rules feat(test): migrate to cloudflare worker test suite 2025-05-29 20:54:44 +08:00
.github buy_me_a_coffee 2025-04-13 12:21:47 +08:00
.vscode feat: Add internationalization (i18n) support 2025-03-03 11:21:39 +08:00
app feat: add vue-sonner styles import 2025-05-25 20:38:28 +08:00
docs Merge branch 'master' of github.com:ccbikai/Sink 2025-05-24 18:51:23 +08:00
i18n feat: add vue-sonner styles import 2025-05-25 20:38:28 +08:00
public feat: enhance globe visualization with traffic arcs 2025-05-18 20:50:56 +08:00
schemas feat(test): migrate to cloudflare worker test suite 2025-05-29 20:54:44 +08:00
scripts feat: enhance globe visualization with traffic arcs 2025-05-18 20:50:56 +08:00
server feat(test): migrate to cloudflare worker test suite 2025-05-29 20:54:44 +08:00
tests feat(test): migrate to cloudflare worker test suite 2025-05-29 20:54:44 +08:00
.editorconfig feat: init 2024-05-25 08:09:30 +08:00
.env.example feat(test): add comprehensive testing guidelines 2025-05-28 19:50:56 +08:00
.gitignore feat(test): migrate to cloudflare worker test suite 2025-05-29 20:54:44 +08:00
.node-version chore: update Node.js version and optimize build configuration 2025-05-21 12:15:04 +08:00
.npmrc feat: init 2024-05-25 08:09:30 +08:00
CODE_OF_CONDUCT.md feat: add Contributor Covenant Code of Conduct 2024-10-18 12:04:06 +08:00
components.json chore: update project configuration and dependencies 2025-05-22 19:41:25 +08:00
eslint.config.mjs feat: enhance realtime dashboard with time filters 2025-05-18 19:06:28 +08:00
LICENSE feat: init 2024-05-25 08:09:30 +08:00
nuxt.config.ts feat(test): add comprehensive testing guidelines 2025-05-28 19:50:56 +08:00
package.json feat(test): migrate to cloudflare worker test suite 2025-05-29 20:54:44 +08:00
pnpm-lock.yaml feat(test): migrate to cloudflare worker test suite 2025-05-29 20:54:44 +08:00
pnpm-workspace.yaml chore: Update dependencies 2025-05-22 19:46:54 +08:00
README.md docs: update deployment and add MCP instructions 2025-05-23 12:12:56 +08:00
renovate.json feat: init 2024-05-25 08:09:30 +08:00
tailwind.config.js fix: some style issues 2024-06-02 19:18:22 +08:00
tsconfig.json feat(test): migrate to cloudflare worker test suite 2025-05-29 20:54:44 +08:00
vitest.config.ts feat(test): migrate to cloudflare worker test suite 2025-05-29 20:54:44 +08:00
wrangler.jsonc chore: update project configuration and dependencies 2025-05-22 19:41:25 +08:00

Sink

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

ccbikai/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 for personalized slugs and case sensitivity.
  • 🪄 AI Slug: Leverage AI to generate slugs.
  • Link Expiration: Set expiration dates for your links.

🪧 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
  • 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

Configuration Docs

🔌 API

API Docs

🧰 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/create"
      }
    }
  }
}

🙋🏻 FAQs

FAQs

💖 Credits

  1. Cloudflare
  2. NuxtHub
  3. Astroship

Sponsor

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