https://urlinkcat.pages.dev/#demo
URL Link Catalog, or URLinkCat, is a free, open-source, fully customizable, multi-user, cloud-synced and easy-to-use bookmark web app.
π This project won Cloudflare Developer Summer Challenge 2021. Thank you Cloudflare for the prize box!
You need it if you want to:
- Acess personal bookmarks across browsers and devices
- Acess bookmarks across work and personal accounts
- Share links with a group of people
- Collaboratively create a internet directory with firends
- Publish your up-to-date collection of your favorite AIs since 2023!
Feature | URLinkCat | Linktree |
---|---|---|
Cost | β Free | β Free + Paid plans |
Cloud sync | β | β |
Cross-device access | β | β |
Sharing links | β | β |
Thumbnails | β Emoji / Material Design Icons | β Image upload / Icons |
Manage links | β One-click editing mode toggle | β Complex admin backstage |
Multi-pages | β As many as you want | β Create only 1 page per account |
Collaboration | β Anyone authorized can edit | β |
Authorization | β No need accounts1 | β Requires accounts β less convenient |
Open source | β | β |
App size | β Lightweight | β Heavy |
1: Optional password protection coming soonβ’
Check out our official examples listed on https://urlinkcat.pages.dev/#demo.
- Visit
https://urlinkcat.pages.dev/#ImSuperHero123
to view the page ofImSuperHero123
.1,2 - Manage. No need accounts. Just click bottom-right π button to toggle editing mode.3
- Preview. Click π button again to toggle viewer mode.
- Save to Cloud. Click the βοΈ cloud button in viewer mode. If βοΈ shift to βοΈ, congratulations, your masterpiece is in the could!
Tips:
- To make bookmark "private", use a page id hard to guess like
SUxPVkVV
. Search engines won't know unless you speak it out loud. - Visiting https://urlinkcat.pages.dev/ barely will give you a random ID.
- You will need codename to change thumbnails and colors, and the codenames can be found from the default "How to Use" section.
Infrastructure | Cost |
---|---|
Cloudflare Pages | $0 |
Cloudflare Workers | $0 |
Cloudflare KV database | $0 |
Cloudflare subdomain | $0 |
Total | $0 |
- Fork me on GitHub
- Change the config at "src/routes/App.svelte" and/or "static/data_default.json"
- Follow the steps on Cloudflare Pages document
- Setup "Build Configurations" as below.
Framework preset: Svelte
Build command: pnpm run build
Build output directory: /static
Your instance is now ready to use, but only within a browser tab session. To enable cloud storage, keep following steps blow.
- Create a new Cloudflare Workers instance on https://workers.dev/
- Create a KV namespace and bind it to this workers instance. Default name is
URLinkCat
. - Copy & paste ".cf_workers/main.js" to Cloudflare Workers Quick Edit.
- Click "Save and deploy" on Quick Edit. (
wrangler
not required)
Double-check if cf_workers
value in "src/routes/App.svelte" matches your back-end address.
Now you should find your instance up and running!
Infrastructure | Purpose |
---|---|
Cloudflare Pages | Static web files |
Cloudflare Workers | Network requests handler, database connector |
Cloudflare KV | NoSQL database |
Front-end | Purpose |
---|---|
Svelte | Framework / Compiler |
Papier | CSS library |
Material Design Icons | Icon library |
Architecture:
βββββββββββββx.pages.devβββ
β β
β ββββββββββ β
β β.svelte β β
β βββ¬βββββββ β
β β β
β β compile β
β βΌ β
βββββββββββ β βββββββββββββββββ β βββββββββββββββββ ββββββββββββ
β User βββββββΌβββΊβ.html/.css/.js βββββββΌβββΊβy.z.workers.devβββββΊβWorkers KVβ
βββββββββββ β βββββββββββββββββ β βββββββββββββββββ ββββββββββββ
β β middleware database
βββββββββββββββββββββββββββ
frontend
Feel free to send PR. Consider following improvements:
- Change orders by dragging
- Optional password protection
- Depolyment on other playforms (vercel, deno deploy, render.com, etc.)
- Open a group of links at once by a single click (firefox bookmark toolbar "Open All in Tabs")