Awesome
⚡ Sink
A Simple / Speedy / Secure Link Shortener with Analytics, 100% run on Cloudflare.
<a href="https://trendshift.io/repositories/10421" target="_blank"> <img src="https://trendshift.io/api/badge/repositories/10421" alt="ccbikai/Sink | Trendshift" style="width: 250px; height: 55px;" width="250" height="55" /> </a> <a href="https://news.ycombinator.com/item?id=40843683"> <img src="https://hackernews-badge.vercel.app/api?id=40843683" alt="Featured on Hacker News" style="width: 250px; height: 55px;" width="250" height="55" /> </a>
✨ 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
<details>
<summary><b>Screenshots</b></summary>
<img alt="Analytics" src="./docs/images/sink.cool_dashboard.png"/>
<img alt="Links" src="./docs/images/sink.cool_dashboard_links.png"/>
<img alt="Link Analytics" src="./docs/images/sink.cool_dashboard_link_slug.png"/>
</details>
🧱 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 - 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
-
Fork the repository to your GitHub account.
-
Create a Cloudflare Pages project.
-
Select the
Sink
repository and theNuxt.js
preset. -
Configure environment variables.
NUXT_SITE_TOKEN
length must exceed 8.NUXT_CF_ACCOUNT_ID
find your account ID.NUXT_CF_API_TOKEN
Create a Cloudflare API token. This token requiresAccount.Account Analytics
permissions at the very least. Reference..
-
Save and deploy.
-
Cancel the deployment, navigate to
Settings
->Functions
.- KV namespace bindings. Bind the variable name
KV
to a KV namespace. - Workers AI Bindings. Bind the variable name
AI
to the Workers AI Catalog. Optional - Analytics Engine bindings. Bind the variable name
ANALYTICS
to thesink
dataset, and enable Cloudflare Analytics Engine beta for your account.
- KV namespace bindings. Bind the variable name
-
Redeploy.