2
0
Fork
You've already forked Sink
0
A Simple / Speedy / Secure Link Shortener with Analytics, 100% run on Cloudflare.
  • Vue 77.6%
  • TypeScript 20.4%
  • JavaScript 1.2%
  • CSS 0.8%
Find a file
2025年02月08日 21:05:21 +08:00
.github chore: Update package dependencies and optimize imports 2024年07月08日 20:28:38 +08:00
.vscode style: eslint 2024年12月24日 21:10:36 +08:00
assets perf: Simple map 2024年06月08日 19:07:27 +08:00
components fix: correct link creation event emission 2025年02月08日 20:22:21 +08:00
docs feat: improve case-sensitive slug handling 2024年12月25日 12:15:00 +08:00
layouts feat: init 2024年05月25日 08:09:30 +08:00
middleware feat: init 2024年05月25日 08:09:30 +08:00
pages feat: redirect dashboard to analysis and update nav link 2024年07月20日 18:11:38 +08:00
public fix: updates image resources and fixes metrics 2024年12月25日 12:13:50 +08:00
schemas feat: improve case-sensitive slug handling 2024年12月25日 12:15:00 +08:00
scripts chore: Update package dependencies and optimize imports 2024年07月08日 20:28:38 +08:00
server feat: improve case-sensitive slug handling 2024年12月25日 12:15:00 +08:00
utils style: eslint 2024年12月24日 21:10:36 +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 perf: The map is not packaged into the code to reduce the server size 2024年06月08日 17:15:25 +08:00
.node-version fix: standardize .node-version format 2024年11月04日 10:31:31 -06:00
.npmrc feat: init 2024年05月25日 08:09:30 +08:00
app.config.ts fix: correct GitHub URL in app configuration 2024年11月08日 19:42:23 +08:00
app.vue chore: Update package dependencies and optimize imports 2024年07月08日 20:28:38 +08:00
CODE_OF_CONDUCT.md feat: add Contributor Covenant Code of Conduct 2024年10月18日 12:04:06 +08:00
components.json feat: init 2024年05月25日 08:09:30 +08:00
error.vue feat: init 2024年05月25日 08:09:30 +08:00
eslint.config.mjs chore: Update package dependencies and optimize imports 2024年07月08日 20:28:38 +08:00
LICENSE feat: init 2024年05月25日 08:09:30 +08:00
nuxt.config.ts feat: add configurable list query limit 2024年12月25日 12:14:38 +08:00
package.json 0.1.8 2024年12月29日 21:12:55 +08:00
pnpm-lock.yaml chore: update dependencies and lockfile 2024年12月25日 12:12:06 +08:00
README.md docs: update KV Namespace setting path & add docs URL 2025年01月20日 14:21:36 +05:30
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 feat: init 2024年05月25日 08:09:30 +08:00

Sink

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

ccbikai/Sink | Trendshift Featured on Hacker News Uneed Badge

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