<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Unstuck</title><description>Real bugs from real indie projects, and the fixes that worked.</description><link>https://unstucked.dev/</link><item><title>Stripe + Gelato print-on-demand, end to end</title><link>https://unstucked.dev/fixes/stripe-gelato-print-on-demand/</link><guid isPermaLink="true">https://unstucked.dev/fixes/stripe-gelato-print-on-demand/</guid><description>Let users buy a real printed poster of what they made: render at print resolution, host it, charge with Stripe, and create the Gelato order from the webhook, not the browser.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>One subscription across web and mobile (Stripe + RevenueCat + Supabase)</title><link>https://unstucked.dev/fixes/shared-subscription-stripe-revenuecat-supabase/</link><guid isPermaLink="true">https://unstucked.dev/fixes/shared-subscription-stripe-revenuecat-supabase/</guid><description>Pay on web or mobile, unlock both, never double-charge, by making one Supabase column the source of truth instead of reconciling two billing systems.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Your Cloudflare build passes locally but silently fails in CI</title><link>https://unstucked.dev/fixes/cloudflare-build-passes-locally-fails-in-ci/</link><guid isPermaLink="true">https://unstucked.dev/fixes/cloudflare-build-passes-locally-fails-in-ci/</guid><description>A Vite alias that reached outside the repo root built fine locally but failed on Cloudflare Pages for weeks, while the old bundle kept serving.</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate></item><item><title>A stale vite.config.js silently overrode my vite.config.ts</title><link>https://unstucked.dev/fixes/stale-vite-config-js-overrode-ts/</link><guid isPermaLink="true">https://unstucked.dev/fixes/stale-vite-config-js-overrode-ts/</guid><description>Edits to vite.config.ts had no effect because a compiled vite.config.js sat next to it, and Vite loads the .js in preference to the .ts.</description><pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Pinterest&apos;s bulk upload silently drops duplicate-link rows</title><link>https://unstucked.dev/fixes/pinterest-bulk-csv-drops-duplicate-links/</link><guid isPermaLink="true">https://unstucked.dev/fixes/pinterest-bulk-csv-drops-duplicate-links/</guid><description>A 16-row bulk pin CSV created only 2 pins because Pinterest deduplicates rows by destination link, not by image.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Hosting public images from a locked-down Windows box</title><link>https://unstucked.dev/fixes/public-image-hosting-locked-down-windows/</link><guid isPermaLink="true">https://unstucked.dev/fixes/public-image-hosting-locked-down-windows/</guid><description>Behind a corporate proxy, wrangler and the throwaway upload hosts all failed. GitHub plus jsDelivr was the dependable free image host.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate></item><item><title>PowerShell globbing mangles Expo Router [id] file paths</title><link>https://unstucked.dev/fixes/powershell-globbing-breaks-bracket-paths/</link><guid isPermaLink="true">https://unstucked.dev/fixes/powershell-globbing-breaks-bracket-paths/</guid><description>Reading and writing files at bracketed paths like app/[id]/index.tsx failed because PowerShell treats [id] as a wildcard character class.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>