atannex/share
atannex/share is a Laravel package for adding share functionality to your app. It offers a simple, framework-friendly way to generate and manage shareable links or social sharing actions, integrating cleanly with Laravel conventions.
Architecture fit: The package is a Laravel-native solution for share sheets, fitting well into Laravel’s service provider and Blade component architecture. The new data-share-files and data-share-open attributes indicate a frontend component (likely Alpine.js or vanilla JS) that integrates with Laravel’s backend for file management and sheet configuration. The ->file() method implies server-side file attachment, aligning with Laravel’s storage and file handling. Overall, good architectural fit for Laravel applications needing shareable content sheets with files.
Integration feasibility: High. Installation via Composer, publishing assets/config, and using Blade directives is standard. The new features require the Web Share API (Level 2) for file sharing, supported in modern mobile browsers but not all desktop browsers. Integration requires ensuring files are stored and accessible via URLs that can be shared. The deep linking feature (sheet-id#section-id) is straightforward to integrate with existing routing or frontend navigation.
Technical risk: Moderate. The primary risk is browser compatibility for native file sharing. Devices/browsers without Web Share API file support will not show the share button (graceful degradation), but users may expect file sharing on unsupported platforms. There is also risk around file security: ensuring shared files are accessible only to intended recipients (signed URLs, access control). The package may not handle authorization out of the box. Additionally, the use of data-* attributes and JS means potential conflicts with CSP or existing JS frameworks.
Key questions:
data-share-open interact with Laravel routing? Is it purely client-side (e.g., hash-based) or does it require server-side route definitions?Stack fit: The package appears designed for Laravel with Blade templates and likely Alpine.js for interactivity. It should fit into a typical Laravel stack (Laravel 9/10, PHP 8.1+). The new file sharing feature may require configuration of Laravel’s filesystem disks and possibly a queue for file processing if large files are involved. The deep linking feature is frontend-only and should not require backend changes.
Migration path: For new adopters, installation is straightforward via Composer. For those upgrading from v1.0.x, v1.1.0 is a minor release with new features and no breaking changes, so upgrade should be safe. However, users should test file sharing on target devices and verify that existing sheets without files behave as before.
Compatibility: The package likely supports Laravel 8+ and PHP 7.4+ (check package requirements). The new features rely on the Web Share API, supported in Chrome for Android, Safari on iOS, and some desktop browsers (Chrome 89+ on Windows/ChromeOS). File sharing via Web Share API is not supported on most desktop browsers. The deep linking feature uses URL fragments, widely supported. Compatibility with Livewire or other frontend frameworks should be verified.
Sequencing:
->file() where needed.data-share-files and test on supported devices.data-share-open for section navigation.Maintenance: The package is actively maintained (new release). TPM should track releases for security and feature updates. Dependencies include frontend libraries (Alpine.js?) and possibly Laravel version constraints. Regular updates may be needed.
Support: Community support likely via GitHub issues. Internal support requires developers familiar with Laravel and the package’s frontend JS. Documentation quality for new features is crucial; verify that file sharing security and fallbacks are documented.
Scaling: File sharing may increase bandwidth and storage usage. Consider CDN for file delivery and Laravel’s queue for file processing. The package itself likely doesn’t handle scaling; it’s up to the application’s infrastructure. Deep linking is lightweight.
Failure modes:
Ramp-up: Developers need familiarity with Laravel Blade, Alpine.js (if used), and Web Share API. The new features are relatively simple to integrate but require testing across devices. Allocate time for cross-browser testing and security review of file sharing.
How can I help you explore Laravel packages today?