[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-92333":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":13,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":15,"starSnapshotCount":15,"syncStatus":36,"lastSyncTime":37,"discoverSource":38},92333,"LinkBreeze","Manak-hash\u002FLinkBreeze","Manak-hash","Self-hosted link-in-bio platform with analytics, QR codes, and themes. The open-source Linktree alternative.","https:\u002F\u002Flinkbreeze-demo.omnirise.dev",null,"TypeScript",60,8,1,0,7,43.56,"MIT License",false,"main",[22,23,24,25,26,27,28,29,30,31,32],"analytics","creator-tools","docker","link-in-bio","linktree-alternative","nextjs","open-source","privacy","self-hosted","sqlite","typescript","2026-07-22 04:02:05","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"public\u002FPublic-Page-iPhone-Dashboard-iMac(-10MB).png\" alt=\"Banner\" width=\"100%\" \u002F>\n\n---\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue?style=for-the-badge)](LICENSE)\n[![Next.js](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNext.js-16-000000?style=for-the-badge&logo=next.js&logoColor=white)](https:\u002F\u002Fnextjs.org)\n[![TypeScript](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-5-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https:\u002F\u002Fwww.typescriptlang.org)\n[![Docker](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocker-Ready-2496ED?style=for-the-badge&logo=docker&logoColor=white)](https:\u002F\u002Fgithub.com\u002Fusers\u002FManak-hash\u002Fpackages\u002Fcontainer\u002Fpackage\u002Flinkbreeze)\n[![OmniRise](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOmniRise-omnirise.dev-06B6D4?style=for-the-badge)](https:\u002F\u002Fomnirise.dev)\n\n[![CI](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FManak-hash\u002FLinkBreeze\u002Fci.yml?style=for-the-badge&logo=githubactions&label=CI&logoColor=white)](https:\u002F\u002Fgithub.com\u002FManak-hash\u002FLinkBreeze\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Latest Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FManak-hash\u002FLinkBreeze?style=for-the-badge&logo=github&color=blue)](https:\u002F\u002Fgithub.com\u002FManak-hash\u002FLinkBreeze\u002Freleases\u002Flatest)\n[![Last Commit](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002FManak-hash\u002FLinkBreeze?style=for-the-badge&logo=git&color=green)](https:\u002F\u002Fgithub.com\u002FManak-hash\u002FLinkBreeze\u002Fcommits)\n\n\u003C\u002Fdiv>\n\n---\n\n> **Stop paying $15\u002Fmo for Linktree.** LinkBreeze gives you links, analytics,\n> QR codes, themes, and a real admin panel — free, forever, in one Docker command.\n\n**[🔗 Live Demo](https:\u002F\u002Flinkbreeze-demo.omnirise.dev\u002Falex)** — see the public page in action (read-only).\n\n**[🔐 Demo Dashboard](https:\u002F\u002Flinkbreeze-demo.omnirise.dev\u002Flogin)** — log in with `demo` \u002F `demo1234` to explore the admin panel.\n\n## ✨ Features\n\n- **🔗 Link Management** — Add, reorder, and customize unlimited links with drag-and-drop\n- **🖼️ Link Thumbnails** — Add images to your links for visual preview cards\n- **🎵 Embed Widgets** — Embed YouTube, Spotify, SoundCloud, Vimeo, or Bandcamp directly on your page\n- **⏰ Link Scheduling** — Schedule links to appear\u002Fdisappear automatically with date\u002Ftime controls\n- **📊 Privacy-First Analytics** — Page views, click tracking, referrers — no cookies, no tracking\n- **📈 External Analytics** — Inject Plausible, Umami, Matomo, or Google Analytics with one paste\n- **🎨 Themes** — 9 built-in presets (Aurora, Glassmorphism, Neon Cyberpunk, Editorial Paper, Terminal Mono, Pastel Soft, Brutalist, Retro Sunset, Minimal Light) + full customizer with CSS token system (colors, 10 fonts, 8 background types, 6 card styles, layout controls, effects) + theme duplicate\u002Fimport\u002Fexport\n- **✏️ Custom CSS** — Fine-tune your page with raw CSS injection\n- **📧 Email Capture** — Collect subscriber emails on your public page, export to CSV\n- **📱 Mobile-First** — Gorgeous on every screen. Loads in under 300ms. Zero client JavaScript.\n- **🎯 QR Codes** — Auto-generated for your page. Download as SVG or PNG.\n- **🔒 Self-Hosted** — Your data, your server. No tracking. No ads. No subscription.\n- **🐳 One-Command Deploy** — Docker compose and you're live\n\n## 🚀 Quick Start\n\n> Zero config. One command. Your Linktree alternative is live in 30 seconds.\n\n### 🐳 Docker (Recommended)\n\nThe fastest path to production. No Node.js, no npm, no config files needed.\n\n**Linux \u002F macOS \u002F Windows CMD** — run as a single line:\n\n```bash\ndocker run -d --name linkbreeze --restart unless-stopped -p 3000:3000 -v linkbreeze-data:\u002Fapp\u002Fdata ghcr.io\u002Fmanak-hash\u002Flinkbreeze:latest\n```\n\n**Windows PowerShell** — same command, use backticks for line breaks:\n\n```powershell\ndocker run -d `\n  --name linkbreeze `\n  --restart unless-stopped `\n  -p 3000:3000 `\n  -v linkbreeze-data:\u002Fapp\u002Fdata `\n  ghcr.io\u002Fmanak-hash\u002Flinkbreeze:latest\n```\n\nThen open http:\u002F\u002Flocalhost:3000 — the setup wizard takes under 30 seconds.\n\n> **Database migrations run automatically** on container startup — no manual\n> `drizzle-kit migrate` needed for Docker deployments.\n\n> **First time?** Make sure Docker Desktop (Windows\u002FMac) or the Docker daemon\n> (Linux) is running before you execute the command.\n\n### 🧩 Docker Compose\n\nBest if you want to customize ports, add a reverse proxy, or manage updates easily.\n\n**Option A — Pull the pre-built image (fastest, no build step):**\n\nCreate a `docker-compose.yml` with:\n\n```yaml\nservices:\n  linkbreeze:\n    image: ghcr.io\u002Fmanak-hash\u002Flinkbreeze:latest\n    ports:\n      - \"3000:3000\"\n    volumes:\n      - linkbreeze-data:\u002Fapp\u002Fdata\n    restart: unless-stopped\n\nvolumes:\n  linkbreeze-data:\n```\n\nThen:\n\n```bash\ndocker compose up -d\n```\n\n**Option B — Build from source (for development or customization):**\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FManak-hash\u002FLinkBreeze.git\ncd LinkBreeze\ndocker compose up -d --build\n```\n\nCheck logs anytime with:\n\n```bash\ndocker compose logs -f linkbreeze\n```\n\nUpgrade to the latest version:\n\n```bash\ndocker compose pull && docker compose up -d\n```\n\n### 🔧 Manual (without Docker)\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FManak-hash\u002FLinkBreeze.git\ncd LinkBreeze\n\nnpm install\n\n# Configure environment\ncp .env.example .env\n# Edit .env to set your SECRET_KEY and DATABASE_PATH if needed\n\n# Run database migrations\nnpm run db:migrate\n\n# Start development server\nnpm run dev\n```\n\n> For production, use npm run build && npm start instead of npm run dev.\n\n## 🌐 Making Your Page Public\n\nLinkBreeze runs on your server. Once deployed, your page is accessible to anyone\nat `https:\u002F\u002Fyour-domain.com\u002Fyour-slug`. Here's how to get it online:\n\n### Option 1: Reverse Proxy with Your Domain\n\nPoint your domain's A record to your server IP, then use a reverse proxy with\nautomatic HTTPS:\n\n\u003Cdetails>\n\u003Csummary>Caddy (recommended — auto HTTPS)\u003C\u002Fsummary>\n\n```\nlinks.example.com {\n    reverse_proxy localhost:3000\n}\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>nginx\u003C\u002Fsummary>\n\n```nginx\nserver {\n    server_name links.example.com;\n    location \u002F {\n        proxy_pass http:\u002F\u002Flocalhost:3000;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n```\n\n\u003C\u002Fdetails>\n\n### Option 2: Cloudflare Tunnel (no open ports)\n\nNo domain purchase or port forwarding needed:\n\n```bash\ncloudflared tunnel --url http:\u002F\u002Flocalhost:3000\n```\n\n## 📸 Screenshots\n\n\u003Cdetails>\n    \u003Csummary>Click to expand\u003C\u002Fsummary>\n    \u003Cbr\u002F>\n\n\u003Ctable>\n    \u003Ctr>\n    \u003Ctd>Public Page\u003C\u002Ftd>\n    \u003Ctd>Admin Dashboard\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n    \u003Ctd>\u003Cimg src=\"public\u002Fscreenshots\u002FPublic-Page.jpeg\" alt=\"Public Page\" \u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\"public\u002Fscreenshots\u002FAdmin-Dashboard.jpeg\" alt=\"Admin Dashboard\" \u002F>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n    \u003Ctd>Links\u003C\u002Ftd>\n    \u003Ctd>Profile\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n    \u003Ctd>\u003Cimg src=\"public\u002Fscreenshots\u002FLinks.jpeg\" alt=\"Links Page\" \u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\"public\u002Fscreenshots\u002FProfile.jpeg\" alt=\"Profile Page\" \u002F>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n    \u003Ctd>Theme\u003C\u002Ftd>\n    \u003Ctd>Settings\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n    \u003Ctd>\u003Cimg src=\"public\u002Fscreenshots\u002FTheme-Picker.jpeg\" alt=\"Theme Picker\" \u002F>\u003C\u002Ftd>\n    \u003Ctd>\u003Cimg src=\"public\u002Fscreenshots\u002FSettings.jpeg\" alt=\"Settings Page\" \u002F>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003C\u002Fdetails>\n\n## 🆚 Comparison\n\n| Feature | Linktree | LinkStack | LittleLink | Shako | **LinkBreeze** |\n|---------|----------|-----------|------------|-------|----------------|\n| **Price** | $15\u002Fmo | Free | Free | Free | **Free** |\n| **Admin Panel** | ✅ | Slow | ❌ | ❌ | **✅ Fast** |\n| **Database** | Theirs | MySQL | None | None | **SQLite** |\n| **Built-in Analytics** | Paid | Basic | ❌ | ❌ | **✅ Full** |\n| **External Analytics** | ✅ | ✅ | ❌ | ❌ | **✅** |\n| **Email Capture** | $9\u002Fmo | ❌ | ❌ | ❌ | **✅** |\n| **Embed Widgets** | Paid | ❌ | ❌ | ❌ | **✅** |\n| **Link Thumbnails** | Paid | ❌ | ❌ | ❌ | **✅** |\n| **QR Codes** | ❌ | ❌ | ❌ | ❌ | **✅** |\n| **Link Scheduling** | Paid | ❌ | ❌ | ❌ | **✅** |\n| **Themes** | Paid | Limited | CSS only | Config | **✅ Full Token System + Import\u002FExport** |\n| **Custom CSS** | ❌ | ❌ | ✅ | ❌ | **✅** |\n| **Self-Hosted** | ❌ | ✅ | ✅ | ✅ | **✅** |\n| **Language** | Closed | PHP | HTML | Astro | **TypeScript** |\n| **Docker Deploy** | N\u002FA | Complex | Simple | Simple | **One command** |\n| **Page Load** | ~2-3s | ~1-2s | Fast | Fast | **\u003C300ms** |\n| **License** | Closed | AGPL | MIT | GPL | **MIT** |\n\n## 🛠️ Tech Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Framework | Next.js 16 (App Router, Server Components, ISR) |\n| Database | SQLite via better-sqlite3 (WAL mode) |\n| ORM | Drizzle ORM (type-safe, zero overhead) |\n| Auth | Cookie-based HMAC sessions, bcrypt |\n| UI | shadcn\u002Fui + Tailwind CSS 4 |\n| Drag & Drop | dnd-kit |\n| Charts | Recharts |\n| QR Codes | qrcode (server-side SVG\u002FPNG) |\n| Validation | Zod |\n| Icons | Lucide + custom social SVGs |\n\n## 📖 Documentation\n\n- [Contributing Guide](CONTRIBUTING.md)\n- [Security Policy](SECURITY.md)\n- [Changelog](CHANGELOG.md)\n- [Troubleshooting](TROUBLESHOOTING.md)\n- [Architecture Decisions](docs\u002Fadr\u002F)\n- [Configuration Reference](#configuration)\n\n## ⚙️ Configuration\n\nAll configuration is via environment variables (`.env`):\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `PORT` | `3000` | Server port |\n| `DATABASE_PATH` | `.\u002Fdata\u002Flinkbreeze.db` | SQLite database file path |\n| `SECRET_KEY` | Auto-generated | HMAC signing key for sessions |\n\nRuntime settings (page slug, title, SEO, theme) are managed via the admin dashboard\nand stored in the database — no code changes needed.\n\n## 🎨 Theme System\n\n9 presets are included out of the box: **Aurora** (animated flagship), **Glassmorphism**, **Neon Cyberpunk**, **Editorial Paper**, **Terminal Mono**, **Pastel Soft**, **Brutalist**, **Retro Sunset**, and **Minimal Light**.\n\nThe theme engine uses a CSS custom property (`--lb-*`) token system — every color, radius, shadow, and font is a token consumed by the public page components. The customizer gives you full control over:\n\n- **Background** — 8 types (solid, gradient, radial, mesh, aurora, animated gradient, image, pattern) with angle, overlay, and opacity controls\n- **Colors** — accent, secondary, text, muted text, card background, card border (hex or rgba)\n- **Typography** — 10 curated Google Fonts (Inter, Poppins, Playfair Display, JetBrains Mono, Space Grotesk, DM Sans, Lora, Bebas Neue, Sora, Outfit), font scale, weight, letter spacing\n- **Card style** — 6 link styles (pill, rounded, sharp, glass, outline, neon), hover effects, button size, corner radius, border width, shadow strength\n- **Layout** — container width, alignment (left\u002Fcenter\u002Fright), density (compact\u002Fnormal\u002Frelaxed)\n- **Effects** — glow with custom color, glass blur, noise texture, reveal animation\n- **Duplicate** — clone any theme (preset or custom) as a new editable copy\n\nAll changes apply with zero client JavaScript — the public page remains 100% server-rendered.\n\n## 🤝 Contributing\n\nContributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## 📜 License\n\nMIT — do whatever you want. See [LICENSE](LICENSE).\n\n## 🏢 About\n\nBuilt by [Manak-hash](https:\u002F\u002Fgithub.com\u002FManak-hash) · An [OmniRise](https:\u002F\u002Fomnirise.dev) project.\n","LinkBreeze 是一个开源、可自托管的「链接聚合页」（link-in-bio）平台，为内容创作者提供一站式个人主页管理方案。核心功能包括可视化链接管理、拖拽排序、链接缩略图与多媒体嵌入（YouTube\u002FSpotify等）、定时发布、隐私优先的内置分析（无 Cookie、无第三方追踪）、多主题定制（9 种预设+深度 CSS 控制）、邮件订阅收集及自动生成 QR 码。基于 Next.js 和 TypeScript 构建，支持 Docker 一键部署，数据默认存储于 SQLite。适用于独立创作者、自媒体人、设计师等需在社交媒体简介中聚合多个入口、重视数据自主权与品牌定制的场景。",2,"2026-07-08 04:30:06","CREATED_QUERY"]