- What is owlstack/owlstack-laravel used for?
- It is a Laravel integration layer for Fopost that lets you publish content to eleven social platforms directly from your application. You build a post with a fluent SendTo API (for example SendTo::telegram()->twitter()->facebook()) or through the Fopost facade, and the package dispatches it through the underlying fopost/social-core library. It is a thin wrapper, so it stays close to Laravel conventions: config file, container singletons, a facade, and events.
- How do I install owlstack/owlstack-laravel?
- Install it with Composer, publish the config file, and fill in your platform credentials in .env. The service provider is auto-discovered via extra.laravel, so no manual registration is needed. A typical sequence is composer require owlstack/owlstack-laravel, php artisan vendor:publish for config/fopost-social.php, then populate the environment keys for each network you plan to use. Before adding it to a supply chain, confirm the canonical Packagist vendor name, since the repository and namespace use the Fopost naming.
- Which social networks does the package support?
- It ships fluent methods for Telegram, X (Twitter), Facebook, LinkedIn, Instagram, Discord, Slack, Reddit, Pinterest, WhatsApp, and Tumblr. Each platform is bound as a singleton instance in the service provider and registered in a PlatformRegistry that the Publisher uses. Because every network has its own authentication model, rate limits, and media constraints, expect to configure and validate each one separately rather than treating them as interchangeable.
- Which Laravel and PHP versions are supported?
- The supported matrix is implied rather than proven: the package targets PHP 8.1 and above, and the bundled example application uses Laravel 12. Compatibility with Laravel 10, 11, or 13 and with PHP 8.4 is not documented, so verify it in a spike before committing. If you run Laravel Octane, also review the singleton-bound platform instances and the shared HttpClient for state leakage between requests.
- Does it support queues, or is publishing synchronous?
- Publishing is synchronous by default: the wrapper contains no artisan commands, middleware, or queue jobs, so each platform call is an HTTP round trip inside your request or job lifecycle. For production use you will want to wrap publishing in your own queued job to control latency, retries, and partial failures. There is currently no first-class fan-out or per-platform retry handling, so those semantics are application concerns.
- How are platform credentials and tokens configured?
- Credentials come from a publishable config/fopost-social.php file that is fed from environment variables, and the service provider binds a FopostConfig singleton from it. That keeps secrets out of code and fits standard Laravel deployment practices. How OAuth refresh tokens are persisted and refreshed beyond config is not clearly documented, so ask the maintainer whether a pluggable token store exists for multi-tenant, encrypted storage before relying on it for user-level accounts.
- How do I listen for successful or failed posts?
- The package includes a LaravelEventDispatcher that bridges the core PostPublished and PostFailed events into Laravel's event dispatcher. You can therefore register ordinary Laravel listeners or subscribers and react to outcomes with logging, notifications, or retry logic. Because publishing is synchronous, these events fire within the same request or job that triggered the publish.
- Is owlstack/owlstack-laravel the canonical Composer package name?
- That is a genuine due-diligence item. The package is presented as owlstack/owlstack-laravel, but the repository is alihesari/fopost-social-laravel and the namespace is Fopost\Social\Laravel, so vendor ownership is ambiguous. Confirm the actual Packagist vendor, who controls the account, and whether releases are tagged and signed from the public repository before adding it as a dependency. Also note the project is young with a single vendor, so the bus factor is unproven.
- Can I test social publishing in CI without hitting live APIs?
- The repository includes PHPUnit unit and feature suites with fixtures, which lowers the cost of evaluating the publish path. However, a public fake or stub transport for your own application tests is not documented, so plan to wrap the Publisher behind your own interface and swap in a test double. That also protects you from API drift in the underlying core library.
- How is media upload handled across platforms?
- Media handling lives in fopost/social-core rather than the Laravel wrapper, and each network enforces its own size, format, and container rules. Support for local or S3 disks and asynchronous container polling for Instagram and WhatsApp is not documented in the wrapper, so verify it during your spike. If media is central to your use case, confirm with the maintainer how uploads are streamed and whether long-running platform processing is handled outside the request.