Overview
Discover what makes linkding powerful
linkding is a lightweight, self‑hosted bookmark manager built on top of **Django 4.x**. It exposes a modern, REST‑ful API and a responsive web UI that can be run as a single Docker container. From a developer’s point of view, the project is intentionally minimalistic: it ships with SQLite by default but can be swapped for any supported Django database backend (PostgreSQL, MySQL, MariaDB). The codebase is split into a single Django app called `bookmarks`, which contains all the domain logic, serializers, and API endpoints. The front‑end is a small JavaScript bundle built with Vite (Node.js) that communicates with the back‑end via the same REST API, keeping the separation of concerns clean.
Framework
API Layer
Front‑end
Database
Overview
linkding is a lightweight, self‑hosted bookmark manager built on top of Django 4.x. It exposes a modern, REST‑ful API and a responsive web UI that can be run as a single Docker container. From a developer’s point of view, the project is intentionally minimalistic: it ships with SQLite by default but can be swapped for any supported Django database backend (PostgreSQL, MySQL, MariaDB). The codebase is split into a single Django app called bookmarks, which contains all the domain logic, serializers, and API endpoints. The front‑end is a small JavaScript bundle built with Vite (Node.js) that communicates with the back‑end via the same REST API, keeping the separation of concerns clean.
Architecture & Technical Stack
- Framework: Django 4.x (Python 3.13) – leverages the ORM, admin interface, and authentication system out of the box.
- API Layer: Django REST Framework (DRF) – provides token‑based authentication, pagination, and filtering for bookmark resources.
- Front‑end: Vite + vanilla JS (no heavy SPA framework) – keeps bundle size small and allows the UI to be replaced or extended without touching the back‑end.
- Database: SQLite for quick starts; fully compatible with PostgreSQL, MySQL, or MariaDB for production workloads.
- Containerization: A single
Dockerfilebuilds an Alpine‑based image; Docker Compose is provided for local development, exposing only the necessary ports. - Background Jobs: Celery (via Redis or RabbitMQ) is optional but supported for tasks such as web‑page archiving and metadata extraction.
Core Capabilities & APIs
- Bookmark CRUD: Create, read, update, delete bookmarks with tags and Markdown notes.
- Bulk Operations: API endpoints accept lists of IDs to perform tag assignment, deletion, or status changes in a single request.
- Metadata Extraction: On bookmark creation, the service scrapes the target URL to populate title, description, favicon, and preview image. This is implemented as an asynchronous task.
- Archiving: Two strategies are available—save a local static HTML snapshot or submit the URL to the Internet Archive. Both are triggered via API calls and handled by background workers.
- Import/Export: Supports the Netscape HTML bookmark format, allowing migration from browsers or other managers.
- Multi‑User & Guest Sharing: Uses Django’s auth system; users can share individual bookmarks or entire collections with other authenticated users or generate guest links.
- SSO & Proxy Auth: Optional OIDC integration and support for authentication proxies (e.g., Nginx with
auth_request).
Deployment & Infrastructure
linkding’s single‑container design makes it trivial to deploy on any platform that runs Docker: VPS, cloud providers (AWS ECS/EKS, GCP Cloud Run), or even on‑premise Docker Swarm. For larger deployments, you can spin up multiple instances behind a load balancer; Django’s session and cache backends (Redis or Memcached) can be shared across workers. The database is externalized, so scaling reads/writes is straightforward with PostgreSQL or MySQL clusters. The optional Celery workers can be scaled horizontally to handle high volumes of archiving or metadata extraction jobs.
Integration & Extensibility
- Plugin System: While the core does not ship a formal plugin API, its modular Django architecture allows developers to fork the
bookmarksapp or create separate Django apps that import its models and serializers. - Webhooks: Custom endpoints can be added to the API for notifying external services on bookmark events (creation, update, deletion).
- Browser Extensions & Bookmarklets: Official extensions for Firefox and Chrome expose the same API, enabling seamless integration with browsers.
- PWA: The front‑end is a fully installable Progressive Web App, so mobile users can pin linkding to their home screens and use it offline.
Developer Experience
The project follows Django conventions closely, making onboarding fast for developers familiar with the framework. The README and in‑repo documentation cover all major features, while the full docs are hosted at linkding.link. Community projects—mobile apps, libraries, and custom integrations—are listed on the main site, fostering an ecosystem. The code is well‑structured: models in bookmarks/models.py, serializers in bookmarks/serializers.py, and views in bookmarks/views.py. Unit tests are included for core logic, and the CI pipeline runs against multiple Python versions.
Use Cases
- Personal Knowledge Base – A developer can host linkding locally to archive research articles, code snippets, and documentation links, leveraging the archiving feature for offline reading.
- Team Collaboration – In a small company, linkding can serve as a shared bookmark repository where teams tag and categorize resources, with guest links for external partners.
- Custom API Integration – Developers building internal tools can consume linkding’s REST API to populate dashboards, generate reports, or sync with other services (e.g., Slack reminders).
- Educational Projects – The lightweight stack is ideal for teaching web development concepts: Django models, DRF serializers, and asynchronous tasks.
Advantages Over Alternatives
- Zero‑Configuration Docker: One image, one container—no external services required for a minimal setup.
- Open‑Source & MIT Licensed: No licensing fees or vendor lock‑in; full control over data.
- **Performance &
Open SourceReady to get started?
Join the community and start self-hosting linkding today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Teikei
Map and manage community-supported agriculture in the DACH region
cmyflix
Fast DIY Netflix clone for Raspberry Pi and NAS
EGroupware
Open source online office for secure, sovereign collaboration
Expressa
Build APIs fast with JSON‑schema powered middleware
Stirling-PDF
Local web PDF editor with split, merge, convert and more
Apache HTTP Server
Fast, secure web server for all platforms
