analyticsbitly-alternativecloudflarelink-shortenernuxtnuxthubshadcn-uitailwindcssurl-shortenerweb-analytics
| .vscode | ||
| assets | ||
| components | ||
| docs | ||
| layouts | ||
| middleware | ||
| pages | ||
| public | ||
| schemas | ||
| server | ||
| utils | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .node-version | ||
| .npmrc | ||
| app.config.ts | ||
| app.vue | ||
| components.json | ||
| error.vue | ||
| eslint.config.mjs | ||
| LICENSE | ||
| nuxt.config.ts | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| renovate.json | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| wrangler.toml | ||
⚡ Sink
A Simple / Speedy / Secure Link Shortener with Analytics, 100% run on Cloudflare.
✨ 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
🧱 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
- 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
-
Fork the repository to your GitHub account.
-
Create a Cloudflare Pages project.
-
Select the
Sinkrepository and theNuxt.jspreset. -
Configure environment variables.
NUXT_SITE_TOKENlength must exceed 8.NUXT_CF_ACCOUNT_IDfind your account ID.NUXT_CF_API_TOKENCreate a Cloudflare API token. This token requiresAccount.Account Analyticspermissions at the very least. Reference..
-
Save and deploy.
-
Cancel the deployment, navigate to
Settings->Functions.- KV namespace bindings. Bind the variable name
KVto a KV namespace. - Workers AI Bindings. Bind the variable name
AIto the Workers AI Catalog. Optional - Analytics Engine bindings. Bind the variable name
ANALYTICSto thesinkdataset, and enable Cloudflare Analytics Engine beta for your account.
- KV namespace bindings. Bind the variable name
-
Redeploy.



