Shopify app
The Shopify app puts Vumbnail thumbnails into Shopify storefronts via a theme app extension, with an embedded admin app for setup and billing. It is scaffolded and researched but not launched — the surface exists from the Shopify app template and the design direction is set, but it is not in the roadmap’s near-term ship lane.
Behavior
Section titled “Behavior”When live, a merchant installs the Vumbnail app from the Shopify App Store, opens the embedded admin (App Bridge), and adds a Vumbnail Product Video block to a product template in the theme editor. The block renders a poster-first video player: it shows the Vumbnail thumbnail and only swaps in the YouTube/Vimeo iframe after a click, keeping product pages fast.
Inputs & outputs
Section titled “Inputs & outputs”Inputs: a Shopify shop session (OAuth/App Bridge), a product video URL or ID configured in the block, and theme block settings.
Outputs: a rendered poster-first video block on the storefront product page; admin views of shop, plan, and configuration.
Entry routing: the app index route redirects to /app (preserving the shop
search params) when a shop parameter is present.
States & edge cases
Section titled “States & edge cases”- Not installed / unauthenticated — standard Shopify OAuth install flow.
- App uninstalled / scope change — handled by
app.uninstalledandapp.scopes_updatewebhooks. - No video configured — the block renders nothing (or a placeholder) rather than a broken player.
- Billing — Shopify Billing is the intended system of record for merchant charges; the existing Stripe entitlement system would at most be a downstream sync target, not the merchant-facing biller.
Data shape
Section titled “Data shape”// Theme block setting (storefront)type ProductVideoBlock = { videoUrl: string // Vimeo/YouTube URL or id posterUrl: string // derived Vumbnail thumbnail URL autoplayOnClick: boolean}
// Admin (embedded app) — shop context from Shopify GraphQLtype ShopContext = { name: string domain: string plan: string}Open questions
Section titled “Open questions”- Launch decision. The app is in a research/scaffold state; whether and when to push it through Shopify review is deferred behind the core revenue work.
- Billing integration depth. Exactly how Shopify Billing maps to clean-image entitlement (per-shop allow-list vs. account-level) is undecided.
- Hosting & session storage for production (Prisma/SQLite locally) needs a production target. See the global Open questions.