Go to file
2024-06-08 17:15:25 +08:00
.github chore: add Sponsor 2024-06-01 17:03:35 +08:00
.vscode feat: init 2024-05-25 08:09:30 +08:00
assets chore: remove world-topo.json from git 2024-06-08 14:43:17 +08:00
components perf: The map is not packaged into the code to reduce the server size 2024-06-08 17:15:25 +08:00
docs docs: Add explanation for NuxtHub analytics in FAQs 2024-06-08 13:17:41 +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 perf: The map is not packaged into the code to reduce the server size 2024-06-08 17:15:25 +08:00
public docs: replace banner image 2024-05-28 08:36:45 +08:00
schemas feat: init 2024-05-25 08:09:30 +08:00
scripts perf: The map is not packaged into the code to reduce the server size 2024-06-08 17:15:25 +08:00
server feat: init 2024-05-25 08:09:30 +08:00
utils feat: init 2024-05-25 08:09:30 +08:00
.editorconfig feat: init 2024-05-25 08:09:30 +08:00
.env.example docs: typo 2024-05-31 12:07:26 +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 chore: Update Node.js version to 20.11.0 2024-06-08 14:37:43 +08:00
.npmrc feat: init 2024-05-25 08:09:30 +08:00
app.config.ts docs: typo 2024-05-28 07:52:56 +08:00
app.vue feat: init 2024-05-25 08:09:30 +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 perf: build map 2024-06-08 14:34:34 +08:00
LICENSE feat: init 2024-05-25 08:09:30 +08:00
nuxt.config.ts feat: switch theme 2024-05-31 23:53:39 +08:00
package.json chore: Update Node.js version to 20.11.0 2024-06-08 14:37:43 +08:00
pnpm-lock.yaml feat: optimize theme switcher and fix style issues 2024-06-02 20:11:57 +08:00
README.md docs: add FAQs 2024-06-04 20:13:43 +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 feat: init 2024-05-25 08:09:30 +08:00

Sink

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

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

  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

🙋🏻 FAQs

FAQs

💖 Credits

  1. Cloudflare
  2. NuxtHub
  3. Astroship

Sponsor

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