Sink is a Simple, Speedy, and Secure link shortener designed to run 100% on the Cloudflare ecosystem README.md1-3 Built with Nuxt 4, it leverages a serverless architecture to provide high-performance link redirection, comprehensive analytics, and an integrated management dashboard without the need for traditional servers README.md48-62 nuxt.config.ts72
Sink is architected as a layered Nuxt application optimized for the Nitro server engine and Cloudflare's edge capabilities nuxt.config.ts72-94 It uses Nuxt layers to separate the core landing page from the management dashboard nuxt.config.ts7
The diagram below illustrates how the primary subsystems interact within the Cloudflare environment.
Sink System Context
Sources: README.md79-87 nuxt.config.ts7-15 docs/deployment/workers.md4-18 docs/deployment/pages.md12-19
qwen3-30b nuxt.config.ts30-31NUXT_SITE_TOKEN nuxt.config.ts22Sink maps logical features directly to Cloudflare bindings and Nuxt directory structures.
Code Entity Mapping
Sources: nuxt.config.ts21-43 docs/deployment/pages.md12-19 docs/configuration.md29-31 docs/deployment/workers.md13-18
The application is split into a public-facing landing page and a protected dashboard using Nuxt's extends feature nuxt.config.ts7
app/, providing the hero section, features, and testimonials app/components/home/Features.vue1-10layers/dashboard/, containing the management interface for links, analytics, and the real-time globe layers/dashboard/app/components/dashboard/realtime/globe/Globe.vue1-5A high-priority Nitro middleware handles incoming requests. It extracts the slug, checks the KV store, and executes the redirect logic based on the link's configuration. It supports various HTTP status codes (e.g., 301, 308) and optional query parameter forwarding nuxt.config.ts23-25 docs/configuration.md25-36
Every redirection event is captured and sent to the Cloudflare Analytics Engine via the ANALYTICS binding. The system uses useTrafficEventBus and useTrafficEvent to bridge server-side logs to the dashboard's real-time 3D globe layers/dashboard/app/components/dashboard/realtime/globe/Globe.vue5-36 layers/dashboard/app/composables/useTrafficEvent.ts15-18
Sink includes automated tasks such as daily backups of link data from KV to R2 storage docs/configuration.md77-86 This feature ensures data durability and can be managed via the NUXT_DISABLE_AUTO_BACKUP environment variable nuxt.config.ts35
For detailed technical documentation, please refer to the following child pages:
Sources: README.md102-114 nuxt.config.ts1-134 docs/configuration.md1-103 docs/deployment/workers.md1-21 docs/deployment/pages.md1-25
Refresh this wiki
This wiki was recently refreshed. Please wait 7 days to refresh again.