linkstash
LinkStash is a personal bookmarking tool for Drupal 11 that automatically fetches metadata, categorizes links by domain, and displays video embeds. Save links via bookmarklet or form with smart auto-tagging.
Development Status: v1.0.0-beta4 (Production Testing) — Feature Complete
This is an experimental AI-assisted module development project using Claude Sonnet 4.5 (Anthropic)
Features
Core Features:
- Personal Link Management — Full CRUD operations with per-user ownership and access control
- Automatic Metadata Fetching — Extracts title, description, and thumbnail from any URL with SSRF protection
- Smart Auto-Categorization — 5 built-in domain-based rules (Video, Code, Social, Articles, Documentation)
- Video Embeds — YouTube, Facebook Reels, and generic oEmbed support with responsive players
- Browser Bookmarklet — One-click saving from any webpage with popup support
- Search & Filter — List and detail views with exposed filters for tags, categories, status, and domain
- Quality Assurance — 187 tests, 100% PHPCS compliance, PHPStan Level 1 clean, ~85% code coverage
- Security — SSRF protection, XSS-safe rendering, RFC 1918 blocking, per-user isolation
Use Cases:
- Developers saving code snippets and documentation
- Content creators collecting reference materials
- Researchers organizing article links
- Anyone wanting a private, self-hosted bookmark manager with rich previews
Post-Installation
- Enable the module:
drush en linkstash - Clear cache:
drush cr - Grant permissions to authenticated users:
- Navigate to
/admin/people/permissions - Enable: create linkstash, view own linkstash, edit own linkstash, delete own linkstash
- Navigate to
- Visit
/linkstash/bookmarkletto install the bookmarklet in your browser - Start stashing links! Click the bookmarklet on any page or visit
/linkstash/add - Browse your collection at
/linkstash
Configuration:
- Navigate to
/admin/structure/linkstash/settingsfor module settings - Manage tags at
/admin/structure/taxonomy/manage/linkstash_tags - Manage categories at
/admin/structure/taxonomy/manage/linkstash_category - Configure field display at
/admin/structure/linkstash/display - No additional configuration required for basic use
Additional Requirements
- Drupal: 11.x
- PHP: 8.3+
- Database: MariaDB 10.11+ (SQLite support planned for v2)
Dependencies:
- Link module (core)
- Image module (core)
- Taxonomy module (core)
- Text module (core)
Recommended modules/libraries
- Pathauto — Auto-generate clean URLs for your stashed links
- Views Bulk Operations — Bulk manage your LinkStashes
- Better Exposed Filters — Enhanced filtering on the main list view
Similar projects
- Flag — Bookmarking module, but LinkStash focuses on external URLs with metadata fetching
- Node Bookmark — Node-based bookmarks; LinkStash is entity-based with richer media support
- Bookmarks — Older module; LinkStash offers modern Drupal 11 architecture with auto-categorization
What makes LinkStash different: Automatic metadata fetching with SSRF protection, domain-based auto-tagging (coming soon), video embed support for multiple platforms, modern PHP 8.3 architecture with attribute-based plugins, and browser bookmarklet integration out of the box.
Development Status
Current Version: 1.0.0-beta4 (Production Testing)
Last Updated: February 8, 2026
Status: Phase v1 Complete — All 11 features implemented (100%)
Beta4 Milestone (February 2026):
- Complete entity system with all fields and CRUD operations
- 3 plugin systems: ContentFetcher, MediaProvider, CategoryRules
- 5 built-in auto-categorization rules for common domains
- Browser bookmarklet with popup and fallback support
- List and detail views with video embed rendering
- 187 tests (132 unit + 55 kernel) with ~85% coverage
- 100% PHPCS compliance, PHPStan Level 1 clean
- Comprehensive documentation (README, CHANGELOG, API docs)
- Security hardening: SSRF protection, XSS fixes, access control
Architecture:
- Modern PHP 8.3 with attribute-based plugin discovery
- Service-based architecture with dependency injection
- Security: SSRF protection, RFC 1918 blocking, XSS-safe rendering
- Performance: Cached plugins, local thumbnail storage, Views integration
About This Project
This module is an experimental AI-assisted development project.
AI Development Details:
- AI Model: Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
- Provider: Anthropic (https://www.anthropic.com)
- Development Environment: Claude Code CLI tool
Project Goals:
- Learn effective AI instruction techniques for Drupal development
- Explore AI-assisted task management and planning workflows
- Develop a production-ready Drupal module with AI collaboration
- Meet drupal.org quality standards and release requirements
- Document the AI development process for the community
Development Approach:
- Human provides requirements, architecture decisions, and code review
- AI assists with implementation, plugin patterns, and best practices
- All code follows Drupal coding standards and security guidelines
- Comprehensive documentation of learnings and patterns
This project serves as a case study in human-AI collaborative software development, demonstrating that AI can be an effective tool for learning and building production-quality Drupal modules when properly directed.
Supporting this Module
This module is currently in active development. Contributions, bug reports, and feature requests are welcome on the project's issue queue.
How to Contribute:
- Report bugs and request features in the issue queue
- Submit patches or pull requests
- Test with different content types and URLs
- Share feedback on the AI development approach
Community Documentation
- Project Homepage: https://www.drupal.org/project/linkstash
- Issue Queue: Report bugs and request features
- Documentation: See README.txt for detailed usage instructions
Roadmap
v1 (Beta4 - Complete)
- ✅ Complete entity system, CRUD, Views integration
- ✅ Bookmarklet, auto-metadata, auto-categorization
- ✅ Video embeds (YouTube, Facebook, oEmbed)
- ✅ 187 tests, PHPCS compliance, security hardening
- Released: February 2026
v2 (Planned) — Enhanced Features
- Browser extension (Chrome, Firefox)
- Import/export (JSON, CSV, HTML bookmarks)
- Duplicate detection and link health checking
- Collections (folders, groups, boards)
- Full-text content archival
- API endpoints for mobile apps
v3 (Future) — Advanced Capabilities
- AI-powered auto-tagging and recommendations
- Multi-site synchronization
- Drupal Recipe for one-click setup
- Social features (sharing, public collections)