No description
Find a file
面条 8941fe3962
Merge pull request #88 from ZL-Asica/feature/case-sensitive
feat: add case sensitivity configuration for slugs
2024-12-15 20:35:57 +08:00
.github chore: Update package dependencies and optimize imports 2024-07-08 20:28:38 +08:00
.vscode chore: fix wrong key in vscode setting 2024-12-02 20:02:59 -06:00
assets perf: Simple map 2024-06-08 19:07:27 +08:00
components fix: adjust cursor handling for KV pagination 2024-12-08 11:37:04 +08:00
docs doc: update docs to reflect the new feature. 2024-12-02 20:25:15 -06: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 chore: a11y 2024-06-08 19:17:49 +08:00
schemas feat: add config to switch case sensitivities 2024-12-02 20:24:47 -06:00
scripts chore: Update package dependencies and optimize imports 2024-07-08 20:28:38 +08:00
server Merge pull request #88 from ZL-Asica/feature/case-sensitive 2024-12-15 20:35:57 +08:00
utils feat: enhance error handling for unauthorized API calls 2024-08-20 21:24:32 +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 config to switch case sensitivities 2024-12-02 20:24:47 -06:00
package.json 0.1.5 2024-12-06 18:47:49 +08:00
pnpm-lock.yaml chore: update dependencies 2024-08-18 19:38:04 +08:00
README.md doc: update docs to reflect the new feature. 2024-12-02 20:25:15 -06: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.

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.
  • Switch between case sensitivity: Toggle between case sensitivity for slugs.

🪧 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 Workers & Pages -> 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.

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