fopost/sdk
A PHP SDK for integrating FOPOST services into Laravel and other PHP applications. Install via Composer and use a consistent client layer to connect your app to the FOPOST API, reducing boilerplate and simplifying platform integrations.
Scope of the release. v0.3.0 is not a maintenance release; it is a step-change in surface area. The changelog lists ~30 merged PRs expanding the SDK from a core posting client into a broad multi-platform social/ads/blog management client. New domains include: inbox actions and comment moderation, Telegram/Slack/Discord bots, Meta messaging + webhook subscriptions, WhatsApp Business, Google Business Profile, Google Ads (recommendations, optimization score), TikTok ads (identities, Spark ads, conversions, ad comments), a second ad network, Snapchat in Platforms::ALL, Reddit (subreddits, rules, flairs, voting), broadcasts and drip sequences, a knowledge resource, an activity/security audit log, blog articles/products on connected sites, and upload size limits. It also introduces a webhook verifier — the one security-critical component in the list.
Architecture fit. The package follows the conventional Laravel integration shape implied by the release (resources/models mirroring API nouns, a Platforms enum-like registry, per-network account extras and metrics). For a Laravel codebase, that is a low-friction fit: service provider + published config + facade + resource objects is the idiom our engineers already know. The risk is not fit, it is breadth: this is effectively a client for a dozen third-party APIs, each with its own auth model, rate limits, pagination, and deprecation cadence. We are adopting a wrapper over a vendor aggregator (Fopost), which means our integration risk is two-layered — the package's own 0.x churn plus every upstream platform change it tracks.
Integration feasibility. Mechanically straightforward: composer require, publish config, supply an API token, call resources. The unknowns are environmental, not conceptual — Laravel version support matrix, PHP constraint, HTTP client dependency (Guzzle/Saloon/raw), and whether uploads stream or buffer. Given the "direct media upload" and "upload size limits" work, we must confirm memory behaviour before routing large video through web requests.
Technical risk (ranked).
BREAKING CHANGE callouts and no deprecation section. Under semver, 0.x permits breaking changes on minor bumps — so ^0.3 is not a safe constraint.Key questions for the maintainer / spike.
composer.json constraints: PHP version, illuminate/support range (Laravel 10/11/12?), HTTP client and its major version.hash_equals, and is there a timestamp/replay guard?Stack fit. Presumed fit for a modern Laravel app (PHP 8.1+, Laravel 10/11). Verify illuminate/support and Guzzle constraints against our lockfile before committing — dependency conflicts here are the most common cause of a multi-day stall on packages like this.
Migration path. Greenfield — no prior assessment and no incumbent SDK, so there is nothing to migrate off. The relevant "migration" is the future 0.3 → 0.4 hop. Treat every 0.x minor as a migration event and budget for it.
Compatibility posture.
"fopost/fopost-php": "0.3.0", not ^0.3. Bump deliberately, in a branch, with the changelog read first.SocialGateway interface in our domain layer; the package should be referenced in exactly one adapter namespace. This costs ~1 day and buys us the option to swap or fork.Sequencing (recommended, 4 phases).
accounts list, per-network metrics). Confirm auth, pagination, and error shape. No writes.Explicitly defer broadcasts/drip sequences and the knowledge resource until a product requirement exists; they add surface without a current consumer.
Maintenance. Expect a steady upgrade tax. With ~30 PRs per minor version and a single maintainer, 0.3.x will drift under us. Assign a named owner and a recurring monthly "SDK currency" task. Budget roughly 1–2 engineer-days per minor bump for changelog review, regression tests, and re-pinning.
Support. Assume community-only, best-effort. There is no evidence of an SLA, LTS branch, or security disclosure policy. For anything touching webhooks or tokens, we must be prepared to patch ourselves — confirm we can fork under the license before adopting.
Scaling.
Failure modes to instrument.
reconnect flag into an operator queue; do not let it fail quietly.composer update — prevented by exact pinning plus a CI lockfile check.Ramp-up. Low-to-moderate for a Laravel engineer on the mechanics (consistent resource pattern, familiar idioms): ~2–3 days to first productive call. High for domain competence: 12+ platform quirks, ads hierarchies, and messaging semantics cannot be absorbed at once. Plan for one engineer to own one platform deeply rather than the team skimming all of them, and write internal docs for the adapter boundary as the durable artifact — not the SDK itself.
How can I help you explore Laravel packages today?