LinkBreeze v1.2.7
Privacy, Security & Preview Cards
Built-in Privacy Policy Pages
Every public page now has a privacy policy at /{slug}/privacy, linked from a footer that is always visible. The policy auto-generates from the page's actual configuration (analytics, email capture, embeds, external analytics scripts, retention window) so it stays accurate without manual maintenance. Operators can write a custom policy to override the auto-generated text.
Security
- Email capture consent (#75) — Subscriber form now requires a consent checkbox. Consent timestamp and exact consent text stored in the database for audit trail. CSV export includes consent columns.
- Removed Google S2 favicon fallback (#72) — No more leaking visitor IPs to Google. Links without cached favicons show a first-letter avatar in the accent color.
- Referrer stripping in analytics (#73) — Only the origin of the Referer header is stored, not the full URL with paths and query parameters.
- CSP support for external analytics (#74) — Operators can allowlist analytics domains via
EXTRA_SCRIPT_SRCenvironment variable.
New Features
- Rich preview link cards — Per-link card style toggle (compact vs. rich preview). Rich cards fetch Open Graph data (title, description, image) and render with a full-bleed image on top, same style as thumbnail cards.
- Multi-strategy favicon fetcher — Replaced Google S2 with a 3-strategy chain: HTML parse > common paths > DuckDuckGo. No more generic globe placeholders for newer domains.
- Email subscribers panel in Data tab — Table of all subscribers with CSV export and Clear All, shown only when email capture is enabled.
- Email capture toggle in Settings UI — The feature existed but had no UI toggle. Now in Settings → General.
Improvements
- Subscribe button inherits theme border radius (was square on 5 themes)
- WCAG-based
--lb-btn-textcontrast token (fixes invisible button text on Glassmorphism and Terminal Mono) - Onboarding checklist simplified to 3 steps with auto-dismiss
- Email capture toggle persistence fixed (missing
revalidatePath)
Full Changelog: v1.2.6...v1.2.7