https://github.com/cxumol/URLinkCat
URL Link Catalog, lightweight multi-user cloud bookmark app running on serverless platform, made for speed and easy-to-use
https://github.com/cxumol/URLinkCat
cf-pages cf-workers cloudflare cloudflare-workers linktree linktree-alternative self-hosted svelte
Last synced: 11 months ago
JSON representation
URL Link Catalog, lightweight multi-user cloud bookmark app running on serverless platform, made for speed and easy-to-use
- Host: GitHub
- URL: https://github.com/cxumol/URLinkCat
- Owner: cxumol
- Created: 2021-10-16T04:45:52.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-11-25T03:47:54.000Z (over 2 years ago)
- Last Synced: 2024-11-08T03:36:41.651Z (over 1 year ago)
- Topics: cf-pages, cf-workers, cloudflare, cloudflare-workers, linktree, linktree-alternative, self-hosted, svelte
- Language: Svelte
- Homepage: https://urlinkcat.pages.dev/#demo
- Size: 135 KB
- Stars: 26
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome - cxumol/URLinkCat - URL Link Catalog, lightweight multi-user cloud bookmark app running on serverless platform, made for speed and easy-to-use (Svelte)
README

# URL Link Catalog
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](https://challenge.developers.cloudflare.com/). Thank you Cloudflare for the prize box!
## Who wants it?
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!
### Comparison
| Feature | URLinkCat | [Linktree](https://linktr.ee) |
|-|-|-|
| 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β’
## User Guide
Check out our official examples listed on .
1. Visit `https://urlinkcat.pages.dev/#ImSuperHero123` to view the page of `ImSuperHero123`.1,2
2. Manage. No need accounts. Just click bottom-right π button to toggle editing mode.3
3. Preview. Click π button again to toggle viewer mode.
4. Save to Cloud. Click the βοΈ cloud button in viewer mode. If βοΈ shift to βοΈ, congratulations, your masterpiece is in the could!
Tips:
1. To make bookmark "private", use a page id hard to guess like `SUxPVkVV`. Search engines won't know unless you speak it out loud.
2. Visiting https://urlinkcat.pages.dev/ barely will give you a random ID.
3. You will need codename to change thumbnails and colors, and the codenames can be found from the default "How to Use" section.
## Host your own instance
| Infrastructure | Cost |
|-|-|
| Cloudflare Pages | $0 |
| Cloudflare Workers | $0 |
| Cloudflare KV database | $0 |
| Cloudflare subdomain | $0 |
| Total | $0 |
### Front-end hosting on Cloudflare Pages
1. [Fork me on GitHub](https://github.com/cxumol/URLinkCat/fork)
2. Change the config at "src/routes/App.svelte" and/or "static/data_default.json"
3. Follow the steps on [Cloudflare Pages document](https://developers.cloudflare.com/pages/get-started)
4. 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.
### Back-end hosting on Cloudflare Workers and KV
1. Create a new Cloudflare Workers instance on https://workers.dev/
2. Create a [KV namespace](https://developers.cloudflare.com/workers/learning/how-kv-works) and bind it to this workers instance. Default name is `URLinkCat`.
3. Copy & paste ".cf_workers/main.js" to [Cloudflare Workers Quick Edit](https://blog.cloudflare.com/improved-quick-edit/).
4. 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!
## Developer notes
| Infrastructure | Purpose |
|-|-|
| [Cloudflare Pages](https://pages.dev/) | Static web files |
| [Cloudflare Workers](https://workers.dev/) | Network requests handler, database connector |
| [Cloudflare KV](https://developers.cloudflare.com/kv/) | NoSQL database |
| Front-end | Purpose |
|-|-|
| [Svelte](https://svelte.dev) | Framework / Compiler |
| [Papier](http://gugel.io/papier/) | CSS library |
| [Material Design Icons](https://fonts.google.com/icons) | Icon library |
Architecture:
```
βββββββββββββx.pages.devβββ
β β
β ββββββββββ β
β β.svelte β β
β βββ¬βββββββ β
β β β
β β compile β
β βΌ β
βββββββββββ β βββββββββββββββββ β βββββββββββββββββ ββββββββββββ
β User βββββββΌβββΊβ.html/.css/.js βββββββΌβββΊβy.z.workers.devβββββΊβWorkers KVβ
βββββββββββ β βββββββββββββββββ β βββββββββββββββββ ββββββββββββ
β β middleware database
βββββββββββββββββββββββββββ
frontend
```
### Contribution
Feel free to send PR. Consider following improvements:
- [x] 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")