Linkwarden is a self-hosted bookmark manager designed for researchers, content teams, and knowledge workers who need to preserve, annotate, and organize web content permanently. It solves the problem of link rot by automatically saving full-page snapshots and provides a unified interface to read, tag, and share links with collaborators. Built with Next.js and TypeScript, it supports both cloud-hosted and self-hosted deployments via Docker, with native iOS and Android apps and a browser extension for seamless capture.
The platform integrates with the Wayback Machine, supports SSO for enterprise users, and offers a REST API for automation. Its architecture combines a React frontend with a Node.js backend, uses PostgreSQL for data storage, and leverages Puppeteer for full-page screenshots and PDF generation. Users can deploy it on any server, NAS, or cloud provider, and sync bookmarks via Floccus or import from SingleFile.
What You Get
- Full-page Preservation - Automatically captures screenshots, PDFs, and single HTML files of every saved webpage to prevent link rot and ensure long-term access.
- Reader View with Annotations - Provides a distraction-free reading interface with text highlighting, margin notes, and font customization for personal knowledge management.
- AI-Powered Tagging - Uses local AI to auto-generate relevant tags based on webpage content, reducing manual categorization effort.
- Collaborative Collections - Invite team members to contribute to shared link collections with granular permission controls for viewing, editing, or managing content.
- Browser Extension & Floccus Sync - Save links directly from Chrome, Firefox, or Edge using the official extension, and sync existing browser bookmarks via Floccus integration.
- Wayback Machine Integration - Optional one-click archiving of saved pages to archive.org for decentralized, permanent storage.
- Bulk Actions & Import/Export - Edit, delete, or tag hundreds of links at once; import bookmarks from HTML files or export data in JSON format for backup.
- SSO & API Access - Enterprise users can authenticate via SAML/OAuth2 and build custom automations using the secure REST API with API keys.
- RSS Feed Subscription - Subscribe to RSS feeds within collections; new articles appear alongside manually saved links for unified content aggregation.
- Mobile Apps (iOS/Android) - Native apps with push notifications and offline access, supporting both cloud and self-hosted instances.
- PWA Support - Install Linkwarden as a progressive web app for app-like experience on any device without downloading from app stores.
- Custom Icons & Pinning - Assign custom icons to links and collections, and pin frequently used items to the dashboard for one-click access.
Common Use Cases
- Research teams preserving academic sources - A university research group uses Linkwarden to save and annotate journal articles, ensuring access even if paywalls or domains disappear.
- Content marketers managing reference libraries - A marketing team collects competitor pages, case studies, and trend reports, tagging them with AI and sharing curated collections with clients.
- Developers archiving documentation - A DevOps engineer saves API docs, Stack Overflow threads, and tutorial pages with screenshots and PDFs to reference during deployments.
- Personal knowledge workers building a second brain - A writer uses Linkwarden to store quotes, blog posts, and research links with annotations, then exports them into Obsidian or Notion.
- Teams collaborating on content calendars - A newsroom team shares and annotates trending articles across departments, using collections to organize topics and assign follow-ups.
- Users migrating from browser bookmarks - Someone with 5,000+ chaotic browser bookmarks imports them via Floccus, organizes with tags, and preserves them permanently to avoid losing critical links.
Under The Hood
Architecture
- Monorepo structure with distinct packages for web, background processing, and data access, enabling independent deployment and clear separation of concerns
- Service-layer design isolates database logic from business rules and UI components, with Prisma as the centralized data access layer
- Event-driven background workers decouple link processing from HTTP requests, improving scalability and responsiveness
- Next.js App Router leverages server components for efficient rendering, while UI components remain stateless and props-driven
- Comprehensive test infrastructure spans unit, integration, and end-to-end layers with isolated environments and deterministic setup/teardown
Tech Stack
- Node.js backend with Next.js 14 and TypeScript, powered by NextAuth for authentication and next-i18next for internationalization
- PostgreSQL with Prisma ORM for relational data management, supported by automated migrations and environment-aware configuration
- Meilisearch for full-text search, containerized with persistent storage for reliability
- Rust-based HTML snapshotting engine embedded via multi-stage Docker builds, ensuring high-fidelity page capture
- Yarn workspaces manage dependencies across packages, with Vitest, ESLint, and Prettier enforcing consistency and quality
- Docker Compose orchestrates all services with health checks and volume persistence for data integrity
Code Quality
- Extensive test coverage with Playwright and Vitest, rigorously validating user flows like authentication and data import
- Strong type safety and custom error handling, including robust SSRF protections at the network layer
- Well-organized monorepo with clear boundaries between core logic, UI, and testing, promoting reuse and maintainability
- Consistent naming, test organization, and environment isolation practices ensure predictable and reliable test behavior
- Comprehensive mocking and stubbing of sensitive dependencies to guarantee deterministic test outcomes
What Makes It Unique
- Native web archive rendering engine that preserves full page fidelity without third-party screenshot services, using server-side headless automation with intelligent sanitization
- Unified permission system enforcing granular collection-level access controls across all clients
- Real-time collaborative tagging with atomic updates and conflict resolution via database transactions
- Context-aware file upload pipeline that auto-detects formats, generates previews, and validates size—all in a single dependency-free endpoint
- Cross-platform UI components with shared TypeScript types and adaptive rendering, eliminating code duplication between web and mobile
- Token revocation integrated directly into JWT validation using database-backed access tokens, removing reliance on refresh token rotation