spaanproductions/laravel-switchbot-frame
A self-contained Laravel + Livewire admin page for the SwitchBot AI Art Frame: upload photos, optimize them for the E Ink Spectra 6 panel, push them to the frame, read real battery levels via webhook, and optionally generate art with AI.
laravel/ai. 1.4.0 supports both ^0.11 and ^1.0 (token shapes: promptTokens/completionTokens vs inputTokens/outputTokens, plus ImageUsage). That buys you the option to defer a forced major upgrade and to migrate on your own schedule — a roadmap input, not just a technical detail.spaanproductions/laravel-ai-usage (explicitly suggested in this release) or your own instrumentation.Consider it when:
laravel/ai for image generation, and you want results rendered on SwitchBot Frame hardware.laravel/ai ^0.11 for now, or you are mid-migration to ^1.0; 1.4.0 and its CI matrix cover both, so you are not blocked by the upgrade.Look elsewhere or plan extra work when:
laravel/ai, or you need a provider-agnostic generation layer.For executives (one paragraph): This package lets our Laravel app push AI-generated images to SwitchBot Frame displays with very little custom code — prompt improvement, generation, and delivery are already handled. The 1.4.0 release is low-risk: it supports both the current and next major version of our AI library, so we are not forced into an upgrade, and it makes sure a display still updates even if our cost-tracking step breaks. That is the right priority for a customer-facing feature, but it means spend numbers are now best-effort — we should add a small cost dashboard (the maintainer points to a companion package) if we intend to use these numbers for budgeting. Overall: a cheap way to test whether physical, AI-generated displays are worth investing in, with a clear seam to walk away if not.
For engineering: 1.4.0 adds laravel/ai ^1.0 support alongside ^0.11, reading token usage from either promptTokens/completionTokens (0.x) or inputTokens/outputTokens (1.x, including ImageUsage); CI now runs the matrix against both majors, so an upgrade is a version bump rather than a rewrite. The behavioral change to note: bookkeeping (usage, model name, cost estimate) is now rescued and not reported, so failures no longer block a generated image from being marked ready or an improved prompt from being applied. That is a deliberate decoupling of telemetry from the critical path — if cost data matters, add explicit logging and alerting around it, or wire in spaanproductions/laravel-ai-usage. No breaking changes are called out; the main risks are the silent-failure behavior and reliance on a pre-1.0-adjacent dependency, so pin versions and keep the delivery call behind a thin internal interface.
How can I help you explore Laravel packages today?