No description
Find a file
ccbikai 7ddbbbbca4 feat: add OpenAPI metadata to endpoints
Enhances API documentation by adding OpenAPI metadata to location and verify endpoints. Includes:

- Security requirements for both endpoints
- Detailed description of endpoint purposes
- Response documentation for verify endpoint with success/error cases
2025-05-21 20:31:12 +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 chore: eslint 2025-05-21 19:54:54 +08:00
docs feat: add bot traffic filtering for access logs 2025-03-16 12:57:05 +08:00
i18n chore: eslint 2025-05-21 19:54:54 +08:00
public feat: enhance globe visualization with traffic arcs 2025-05-18 20:50:56 +08:00
schemas feat: consolidate time filtering and add advanced filters 2025-03-02 13:40:43 +08:00
scripts feat: enhance globe visualization with traffic arcs 2025-05-18 20:50:56 +08:00
server feat: add OpenAPI metadata to endpoints 2025-05-21 20:31:12 +08:00
.editorconfig feat: init 2024-05-25 08:09:30 +08:00
.env.example feat: disable query string redirection by default 2024-07-20 18:34:49 +08:00
.gitignore feat: add realtime log and globe 2025-05-11 17:48:46 +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 feat: add realtime log and globe 2025-05-11 17:48:46 +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 chore: update Node.js version and optimize build configuration 2025-05-21 12:15:04 +08:00
package.json chore: update Node.js version and optimize build configuration 2025-05-21 12:15:04 +08:00
pnpm-lock.yaml feat: update dependencies and enhance API documentation in Nuxt configuration 2025-05-20 19:27:27 +08:00
pnpm-workspace.yaml chore: disable sourcemaps and update build configs 2025-05-20 21:32:27 +08:00
README.md docs: add HelloGitHub badge and standardize widths 2025-05-19 20:16:34 +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: init 2024-05-25 08:09:30 +08:00
wrangler.toml chore: update Node.js version and optimize build configuration 2025-05-21 12:15:04 +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
  • Support for Other Deployment Platforms

🏗️ Deployment

Video tutorial: Watch here

  1. Fork the repository to your GitHub account.

  2. Create a project in Cloudflare Pages.

  3. Select the Sink repository and choose the Nuxt.js preset.

  4. Configure the following environment variables:

    • NUXT_SITE_TOKEN: Must be longer than 8 characters. This token grants access to your dashboard.
    • NUXT_CF_ACCOUNT_ID: Locate your account ID.
    • NUXT_CF_API_TOKEN: Create a Cloudflare API token with at least Account.Account Analytics permissions. See reference.
  5. Save and deploy the project.

  6. Cancel the deployment, then navigate to Settings -> Bindings -> Add:

    • KV Namespace: Bind the variable name KV to a KV namespace (create a new one under Storage & Databases -> KV).
    • Workers AI (Optional): Bind the variable name AI to the Workers AI Catalog.
    • Analytics Engine:
      • In Workers & Pages, go to Account details on the right side, find Analytics Engine, and click Set up to enable the free version.
      • Return to Settings -> Bindings -> Add and select Analytics engine.
      • Bind the variable name ANALYTICS to the sink dataset.
  7. Redeploy the project.

  8. Update code, refer to the official GitHub documentation Syncing a fork branch from the web UI.

⚒️ Configuration

Configuration Docs

🔌 API

API Docs

🙋🏻 FAQs

FAQs

💖 Credits

  1. Cloudflare
  2. NuxtHub
  3. Astroship

Sponsor

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