/Sink

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

Primary LanguageVueGNU Affero General Public License v3.0AGPL-3.0

This version removes some external links but retains the copyright.

⚡ Sink

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

ccbikai/Sink | Trendshift Featured on Hacker News

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.
  • 🪄 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 - Skin Tool
  • Raycast Extension
  • Apple 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: https://www.youtube.com/watch?v=MkU23U2VE9E

  1. Fork the repository to your GitHub account.

  2. Create a Cloudflare Pages project.

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

  4. Configure environment variables.

    1. NUXT_SITE_TOKEN length must exceed 8.
    2. NUXT_CF_ACCOUNT_ID find your account ID.
    3. NUXT_CF_API_TOKEN Create a Cloudflare API token. This token requires Account.Account Analytics permissions at the very least. Reference..
  5. Save and deploy.

  6. Cancel the deployment, navigate to Settings -> Functions.

    1. KV namespace bindings. Bind the variable name KV to a KV namespace.
    2. Workers AI Bindings. Bind the variable name AI to the Workers AI Catalog. Optional
    3. Analytics Engine bindings. Bind the variable name ANALYTICS to the sink dataset, and enable Cloudflare Analytics Engine beta for your account.
  7. Redeploy.

⚒️ 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.