<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Build Logs - Build and Bail</title>
	<atom:link href="https://buildandbail.com/category/build-logs/feed/" rel="self" type="application/rss+xml" />
	<link>https://buildandbail.com</link>
	<description>Build. Validate. Bail. Repeat.</description>
	<lastBuildDate>Mon, 01 Jun 2026 14:16:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://buildandbail.com/wp-content/uploads/2026/02/cropped-build-and-bail-icon-4-32x32.png</url>
	<title>Build Logs - Build and Bail</title>
	<link>https://buildandbail.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>I Built My Own Coffee Roasting App</title>
		<link>https://buildandbail.com/coffee-roasting-app-freshroast-sr800/</link>
					<comments>https://buildandbail.com/coffee-roasting-app-freshroast-sr800/#respond</comments>
		
		<dc:creator><![CDATA[CT]]></dc:creator>
		<pubDate>Mon, 01 Jun 2026 14:16:32 +0000</pubDate>
				<category><![CDATA[Build Logs]]></category>
		<category><![CDATA[ai app development]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[build log]]></category>
		<category><![CDATA[coffee roasting]]></category>
		<category><![CDATA[drop log]]></category>
		<category><![CDATA[freshroast sr800]]></category>
		<category><![CDATA[roast logging]]></category>
		<guid isPermaLink="false">https://buildandbail.com/?p=1810</guid>

					<description><![CDATA[I roast coffee on a FreshRoast SR800. I also sell roast logbooks for it — paper ones on Amazon, digital files on Etsy. Not a fortune. A handful a month. But &#8220;a handful a month, every month&#8221; is the cleanest signal there is: people want to log their roasts, and some of them will pay [&#8230;]<p>Read more at <a href="https://buildandbail.com/coffee-roasting-app-freshroast-sr800/">Build and Bail</a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I roast coffee on a FreshRoast SR800. I also sell <a href="https://amzn.to/4u5C0N2" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener nofollow sponsored" class="ek-link">roast logbooks</a> for it — paper ones on Amazon, digital files on Etsy. Not a fortune. A handful a month. But &#8220;a handful a month, every month&#8221; is the cleanest signal there is: people want to log their roasts, and some of them will pay for a tool to do it.</p>



<p class="wp-block-paragraph">So a <strong>FreshRoast SR800 roast logging app</strong> wasn&#8217;t a guess. It was the digital version of a thing I already sell. I built Drop Log for me first — I&#8217;m the most reliable user I have — but with actual evidence the need is real, not a hunch I talked myself into.</p>



<p class="wp-block-paragraph">Then I made a string of calls that look like shortcuts and weren&#8217;t. Here&#8217;s the reasoning.</p>



<p class="wp-block-paragraph"><strong>Why I built it in a single browser tab</strong></p>



<p class="wp-block-paragraph">The &#8220;proper&#8221; plan I worked out with Claude had me installing Xcode, Android Studio, Node, a build service — the full native dev gauntlet before writing one line. I looked at that and decided I&#8217;d rather build than configure.</p>



<figure class="wp-block-image aligncenter size-full"><img fetchpriority="high" decoding="async" width="547" height="779" src="https://buildandbail.com/wp-content/uploads/2026/06/image.png" alt="image" class="wp-image-1812" title="I Built My Own Coffee Roasting App" srcset="https://buildandbail.com/wp-content/uploads/2026/06/image.png 547w, https://buildandbail.com/wp-content/uploads/2026/06/image-211x300.png 211w" sizes="(max-width: 547px) 100vw, 547px" /></figure>



<p class="wp-block-paragraph">So I used Gemini AI Studio. One tab. Describe what I want, it writes the code, builds it, I test it. No local environment, no terminal. That tradeoff cost me some things (below), but I stayed in flow instead of losing a night to installers.</p>



<p class="wp-block-paragraph"><strong>Why it&#8217;s an Android roast logger and nothing else (for now)</strong></p>



<p class="wp-block-paragraph">Because I&#8217;m an Android user and I&#8217;m tired of being an afterthought. Every app ships Apple-first and Android waits months for a worse version. I built the Android roast logger I&#8217;ll actually use. iOS happens later, if ever — the reverse of how everyone else does it.</p>



<p class="wp-block-paragraph"><strong>Why there&#8217;s no cloud and no account</strong></p>



<p class="wp-block-paragraph">The original plan had a backend, accounts, a shared recipe database. I cut all of it. Drop Log is a home coffee roasting tracker that lives entirely on your phone, locally. No login, no server.</p>



<ul class="wp-block-list">
<li>it&#8217;s for me first, and I don&#8217;t need a community to log my own roasts</li>



<li>offline-and-yours-forever is a feature next to a roaster in a garage with bad signal</li>
</ul>



<p class="wp-block-paragraph">You save your own recipes locally and replay them. If recipe sharing ever shows up, it&#8217;ll be because I wanted it — not because a roadmap demanded it.</p>



<p class="wp-block-paragraph">The paper logbook still exists for the people who&#8217;d rather keep their phone away from the heat. Same problem, two formats. They&#8217;re not competitors.</p>



<p class="wp-block-paragraph"><strong>The part where the AI lies to you</strong></p>



<p class="wp-block-paragraph">Building an app with AI in one tab is great until you notice the tool is a relentless optimist. Gemini ended nearly every reply with a victory lap — real quotes:</p>



<ul class="wp-block-list">
<li>&#8220;The build compiled with immediate success.&#8221;</li>



<li>&#8220;The application compiles perfectly.&#8221;</li>



<li>&#8220;robust and production-ready.&#8221;</li>
</ul>



<p class="wp-block-paragraph">At the same time:</p>



<ul class="wp-block-list">
<li>it couldn&#8217;t publish for three rounds (&#8220;Developer status does not allow app creation&#8221;)</li>



<li>the version number kept colliding with itself — 1 → 2 → 3 → 4 chasing errors</li>



<li>the bottom nav buttons just didn&#8217;t always work. tap, nothing.</li>
</ul>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">&#8220;Production-ready&#8221; and &#8220;frozen buttons&#8221; were true in the same breath. That&#8217;s the catch: the tool narrates success while the thing is broken, and your only real job is to be the person tapping the buttons. I caught the frozen nav by describing the exact symptom, swapped the heat to a real 1–9 scale, and added a Start Roast button so the timer doesn&#8217;t run before the first bean drops. Stuff you only find by using it.</p>



<p class="wp-block-paragraph"><strong>Where it stands</strong></p>



<p class="wp-block-paragraph">Internal testing now — me, garage, real roasts, finding what breaks. Public testing next. Then Drop Log becomes the SR800 roasting app I wanted but couldn&#8217;t find.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img decoding="async" width="459" height="1024" data-id="1813" src="https://buildandbail.com/wp-content/uploads/2026/06/Freshroast-App-1-459x1024.png" alt="freshroast app 1" class="wp-image-1813" title="I Built My Own Coffee Roasting App" srcset="https://buildandbail.com/wp-content/uploads/2026/06/Freshroast-App-1-459x1024.png 459w, https://buildandbail.com/wp-content/uploads/2026/06/Freshroast-App-1-135x300.png 135w, https://buildandbail.com/wp-content/uploads/2026/06/Freshroast-App-1-689x1536.png 689w, https://buildandbail.com/wp-content/uploads/2026/06/Freshroast-App-1.png 768w" sizes="(max-width: 459px) 100vw, 459px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="459" height="1024" data-id="1814" src="https://buildandbail.com/wp-content/uploads/2026/06/Freshroast-App-2-459x1024.png" alt="freshroast app 2" class="wp-image-1814" title="I Built My Own Coffee Roasting App" srcset="https://buildandbail.com/wp-content/uploads/2026/06/Freshroast-App-2-459x1024.png 459w, https://buildandbail.com/wp-content/uploads/2026/06/Freshroast-App-2-135x300.png 135w, https://buildandbail.com/wp-content/uploads/2026/06/Freshroast-App-2-689x1536.png 689w, https://buildandbail.com/wp-content/uploads/2026/06/Freshroast-App-2.png 768w" sizes="(max-width: 459px) 100vw, 459px" /></figure>
</figure>



<p class="wp-block-paragraph">Verdict: <strong>KEEP GOING.</strong> I built the app I wanted, on the platform I use, for a problem people already pay me to solve on paper. The &#8220;limitations&#8221; are choices. The only thing the AI got wrong was telling me it was done.</p>



<p class="wp-block-paragraph">More once it&#8217;s public.</p>
<p>Read more at <a href="https://buildandbail.com/coffee-roasting-app-freshroast-sr800/">Build and Bail</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://buildandbail.com/coffee-roasting-app-freshroast-sr800/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>I wrote a kids book. Or Is It a podcast?</title>
		<link>https://buildandbail.com/i-wrote-a-kids-book-or-is-it-a-podcast/</link>
					<comments>https://buildandbail.com/i-wrote-a-kids-book-or-is-it-a-podcast/#respond</comments>
		
		<dc:creator><![CDATA[CT]]></dc:creator>
		<pubDate>Thu, 14 May 2026 12:14:22 +0000</pubDate>
				<category><![CDATA[Build Logs]]></category>
		<guid isPermaLink="false">https://buildandbail.com/?p=1803</guid>

					<description><![CDATA[A few years back I started writing a middle grade novel. It&#8217;s about a kid named Mike McNulty who lives in a small Jersey Shore town, turns 10, and finds out he has a power passed through his family that can drop him into alternate dimensions where he meets other versions of himself. In his [&#8230;]<p>Read more at <a href="https://buildandbail.com/i-wrote-a-kids-book-or-is-it-a-podcast/">Build and Bail</a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">A few years back I started writing a middle grade novel. It&#8217;s about a kid named Mike McNulty who lives in a small Jersey Shore town, turns 10, and finds out he has a power passed through his family that can drop him into alternate dimensions where he meets other versions of himself.</p>



<p class="wp-block-paragraph">In his first trip in the book, he lands in a world with a purple sky where his counterpart is a sorcerer apprentice who accidentally froze his entire valley. There&#8217;s a talking crow named Pib who has zero patience for either of them. It&#8217;s called <em>Into The McNultyverse</em>.</p>



<p class="wp-block-paragraph">I finished the whole book. Then decided not to publish it as a book.</p>



<p class="wp-block-paragraph">Before making that call I had Claude pull competitive research on KDP for kids books in the middle grade space. The short version: very difficult to rank, very crowded, and discoverability without an existing audience or publisher backing is rough. A serialized fiction podcast gets distributed by Spotify and Apple for free. The book would&#8217;ve needed a marketing push I wasn&#8217;t ready for. So the book became a season.</p>



<p class="wp-block-paragraph"><strong>The thing I didn&#8217;t expect to find</strong></p>



<p class="wp-block-paragraph">Full-cast audio dramas dominate the 7–12 space. Mars Patel, Six Minutes, Kaboom — multiple voice actors, cinematic sound design, the whole thing. Great. Also not happening on a solo creator budget.</p>



<p class="wp-block-paragraph">But there&#8217;s a show called Finn Caspian — one narrator, third-person limited, doing distinct voices for each character — that ran 200 episodes across 12 seasons. That&#8217;s the model.</p>



<p class="wp-block-paragraph">And here&#8217;s where my own concept accidentally solved my biggest production problem. Every book, Mike meets an alternate version of himself. Same voice, different world. I was always going to need two Mikes. That&#8217;s not a casting problem — that&#8217;s an ElevenLabs brief. Clone my own voice, adjust the pacing and delivery to be a little slower, a little more formal — and that&#8217;s the counterpart. The AI weirdness is actually <em>right</em> for an alternate dimension character.</p>



<p class="wp-block-paragraph"><strong>What the build looked like</strong></p>



<p class="wp-block-paragraph">I used Claude to research the kids podcast market before writing anything. Then worked through the whole adaptation — book chapters don&#8217;t map cleanly to podcast episodes, and the book didn&#8217;t have a framing device. Claude suggested a &#8220;Counterpart Log&#8221; that opens and closes each episode in Mike&#8217;s voice, looking back on the adventure. It fits the format perfectly and wasn&#8217;t in the original book at all.</p>



<p class="wp-block-paragraph">Then we wrote all 9 episode scripts. Full book adapted into a full season. About 2.7 hours of audio.</p>



<p class="wp-block-paragraph">The stack:</p>



<ul class="wp-block-list">
<li>Audacity for recording and editing</li>



<li>ElevenLabs for the counterpart voice clone</li>



<li>Buzzsprout for hosting and distribution</li>



<li>Gemini (Lyria 3) for the show&#8217;s music sting</li>
</ul>



<p class="wp-block-paragraph"><strong>Where it is right now</strong></p>



<p class="wp-block-paragraph">Scripts are done. Logo is done. Recording hasn&#8217;t started. Launch date TBD.</p>



<div class="wp-block-uagb-image uagb-block-bdcf5980 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none"><figure class="wp-block-uagb-image__figure"><img decoding="async" srcset="https://buildandbail.com/wp-content/uploads/2026/05/McNultyverse-Podcast-Logo-300x300.png ,https://buildandbail.com/wp-content/uploads/2026/05/McNultyverse-Podcast-Logo.png 780w, https://buildandbail.com/wp-content/uploads/2026/05/McNultyverse-Podcast-Logo.png 360w" sizes="auto, (max-width: 480px) 150px" src="https://buildandbail.com/wp-content/uploads/2026/05/McNultyverse-Podcast-Logo-300x300.png" alt="mcnultyverse podcast logo" class="uag-image-1804" width="300" height="300" title="mcnultyverse podcast logo" loading="lazy" role="img"/></figure></div>



<p class="wp-block-paragraph">The plan is to record all 9 episodes before publishing any of them, drop 3 on launch day, then weekly from there. I&#8217;ll document the whole thing here — the recording setup, whether the voice clone actually works, and what it sounds like when a 43-year-old tries to voice a 10-year-old convincingly.</p>



<p class="wp-block-paragraph">Coming soon (unless I bail).</p>
<p>Read more at <a href="https://buildandbail.com/i-wrote-a-kids-book-or-is-it-a-podcast/">Build and Bail</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://buildandbail.com/i-wrote-a-kids-book-or-is-it-a-podcast/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>I built a content calendar app. Shipping it took three days.</title>
		<link>https://buildandbail.com/content-calendar-cloudflare-pages-deploy-nightmare/</link>
					<comments>https://buildandbail.com/content-calendar-cloudflare-pages-deploy-nightmare/#respond</comments>
		
		<dc:creator><![CDATA[CT]]></dc:creator>
		<pubDate>Thu, 16 Apr 2026 12:11:48 +0000</pubDate>
				<category><![CDATA[Build Logs]]></category>
		<category><![CDATA[build-log]]></category>
		<category><![CDATA[cloudflare-pages]]></category>
		<category><![CDATA[deploy-fails]]></category>
		<category><![CDATA[nextjs]]></category>
		<category><![CDATA[supabase]]></category>
		<guid isPermaLink="false">https://buildandbail.com/?p=1781</guid>

					<description><![CDATA[The app itself was the easy part. Next.js 14, Supabase auth, Tailwind, a calendar view for scheduling Build and Bail posts across TikTok, Shorts, Reels, Reddit, and the blog. Standard stuff. Claude Code knocked that out before I even got seriously involved. Then I tried to deploy it to Cloudflare Pages. Three days, four separate [&#8230;]<p>Read more at <a href="https://buildandbail.com/content-calendar-cloudflare-pages-deploy-nightmare/">Build and Bail</a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The app itself was the easy part. Next.js 14, Supabase auth, Tailwind, a calendar view for scheduling Build and Bail posts across TikTok, Shorts, Reels, Reddit, and the blog. Standard stuff. Claude Code knocked that out before I even got seriously involved.</p>



<p class="wp-block-paragraph">Then I tried to deploy it to Cloudflare Pages.</p>



<p class="wp-block-paragraph">Three days, four separate problems, one leaked Supabase password. Here&#8217;s the autopsy.</p>



<h2 class="wp-block-heading">Problem 1: The login redirect loop</h2>



<p class="wp-block-paragraph">Signed in. Got bounced back to login. Signed in again. Bounced back again. Rinse and repeat until I started questioning my life choices.</p>



<p class="wp-block-paragraph">Cookie writes from server actions weren&#8217;t persisting on Cloudflare&#8217;s edge runtime. The fix:</p>



<ul class="wp-block-list">
<li>Move the sign-in call to a browser client</li>



<li>Use a hard <code>window.location.href</code> redirect after success</li>



<li>Stop trying to be clever with server actions for auth on the edge</li>
</ul>



<p class="wp-block-paragraph">Not elegant. Works.</p>



<h2 class="wp-block-heading">Problem 2: &#8220;Supabase env vars: (none found)&#8221;</h2>



<p class="wp-block-paragraph">I&#8217;d set the <code>NEXT_PUBLIC_*</code> variables as Secrets in the Cloudflare dashboard. Seemed reasonable. Secrets are for secret things, right?</p>



<p class="wp-block-paragraph">Wrong.</p>



<ul class="wp-block-list">
<li>Next.js inlines <code>NEXT_PUBLIC_*</code> vars at build time</li>



<li>Secrets in Cloudflare Pages aren&#8217;t exposed at build time</li>



<li>So every Supabase call crashed with undefined credentials</li>
</ul>



<p class="wp-block-paragraph">Fix was moving them into <code>wrangler.toml</code> under <code>[vars]</code> as plaintext. I added a note to <code>.env.example</code> so future me doesn&#8217;t do this again.</p>



<h2 class="wp-block-heading">Problem 3: 500s on every static chunk</h2>



<p class="wp-block-paragraph">This is where I burned most of the three days.</p>



<p class="wp-block-paragraph">Every JS and CSS file under <code>_next/static/*</code> was returning empty-body 500 errors. Build output looked fine. Logs were clean. Everything was correct. Except nothing worked.</p>



<p class="wp-block-paragraph">I went down a rabbit hole patching <code>_routes.json</code>, which produced a routing overlap error that ironically proved the routing was fine all along.</p>



<p class="wp-block-paragraph">Root cause: the Pages project itself had a corrupt asset bundle. Deleting and recreating the project fixed it in about 90 seconds.</p>



<p class="wp-block-paragraph">The signature to watch for, if anyone else hits this:</p>



<ul class="wp-block-list">
<li>Empty-body 500s on static assets</li>



<li><code>server: cloudflare</code> in response headers</li>



<li>No <code>cf-cache-status</code> header at all</li>



<li>Build log shows success</li>
</ul>



<p class="wp-block-paragraph">If you see all four, stop debugging the code. Delete the Pages project and start over.</p>



<h2 class="wp-block-heading">Problem 4: My Supabase password ended up in my browser history</h2>



<p class="wp-block-paragraph">At some point during all this, a form submission fell back to a GET request because the JS hadn&#8217;t loaded yet. My password got stuck in URL query strings. Which means it&#8217;s in my browser history. Which means it&#8217;s plausibly in Cloudflare&#8217;s edge logs too.</p>



<p class="wp-block-paragraph">I rotated the password. You should probably assume any credential that&#8217;s ever touched a form has leaked somewhere.</p>



<h2 class="wp-block-heading">What actually shipped</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1020" height="975" src="https://buildandbail.com/wp-content/uploads/2026/04/image-3.png" alt="Content Calendar" class="wp-image-1783" title="I built a content calendar app. Shipping it took three days." srcset="https://buildandbail.com/wp-content/uploads/2026/04/image-3.png 1020w, https://buildandbail.com/wp-content/uploads/2026/04/image-3-300x287.png 300w, https://buildandbail.com/wp-content/uploads/2026/04/image-3-768x734.png 768w" sizes="auto, (max-width: 1020px) 100vw, 1020px" /></figure>



<p class="wp-block-paragraph">A working content calendar with:</p>



<ul class="wp-block-list">
<li>Supabase auth that doesn&#8217;t loop</li>



<li>A weekly calendar view for scheduling across platforms</li>



<li>Status tracking (draft / scheduled / posted / flopped)</li>



<li>A quick-add modal so I can dump ideas when they hit</li>



<li>Hosted on Cloudflare Pages for free</li>
</ul>



<p class="wp-block-paragraph">The meta part: I built this specifically to schedule posts like this one. The first post on the calendar is a post about the calendar.</p>



<h2 class="wp-block-heading">Time breakdown</h2>



<ul class="wp-block-list">
<li>Actual building: ~30 minutes</li>



<li>Waiting for Cloudflare builds: a lot</li>



<li>Chasing the wrong theory on problem 3: at least an hour I&#8217;m not getting back</li>



<li>Total wall clock: 3 days</li>
</ul>



<h2 class="wp-block-heading">The real lesson</h2>



<p class="wp-block-paragraph">Deploys lie. When every layer says &#8220;success&#8221; but nothing works, the infrastructure itself might be broken in a way that doesn&#8217;t surface in logs. Recognize that pattern earlier next time.</p>



<p class="wp-block-paragraph">Also: I could have just used Notion. I know. I know.</p>



<p class="wp-block-paragraph"></p>
<p>Read more at <a href="https://buildandbail.com/content-calendar-cloudflare-pages-deploy-nightmare/">Build and Bail</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://buildandbail.com/content-calendar-cloudflare-pages-deploy-nightmare/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>I&#8217;ve been running a playoff fantasy football league since 2021. Manually. The whole thing.</title>
		<link>https://buildandbail.com/playoff-fantasy-football-website-build/</link>
					<comments>https://buildandbail.com/playoff-fantasy-football-website-build/#respond</comments>
		
		<dc:creator><![CDATA[CT]]></dc:creator>
		<pubDate>Wed, 08 Apr 2026 12:55:42 +0000</pubDate>
				<category><![CDATA[Build Logs]]></category>
		<category><![CDATA[ai tools]]></category>
		<category><![CDATA[build in public]]></category>
		<category><![CDATA[build log]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[claude code]]></category>
		<category><![CDATA[fantasy football]]></category>
		<category><![CDATA[nfl]]></category>
		<category><![CDATA[railway]]></category>
		<category><![CDATA[side project]]></category>
		<guid isPermaLink="false">https://buildandbail.com/?p=1728</guid>

					<description><![CDATA[People email me their picks. I put them in a Google Sheet. Every week during the playoffs I manually look up every stat line for every player on every roster and update the numbers by hand. Then I announce standings in the group chat like a town crier reading from a scroll. Six seasons of [&#8230;]<p>Read more at <a href="https://buildandbail.com/playoff-fantasy-football-website-build/">Build and Bail</a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">People email me their picks. I put them in a Google Sheet. Every week during the playoffs I manually look up every stat line for every player on every roster and update the numbers by hand. Then I announce standings in the group chat like a town crier reading from a scroll.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="896" height="614" src="https://buildandbail.com/wp-content/uploads/2026/04/image.png" alt="image" class="wp-image-1730" title="I&#039;ve been running a playoff fantasy football league since 2021. Manually. The whole thing." srcset="https://buildandbail.com/wp-content/uploads/2026/04/image.png 896w, https://buildandbail.com/wp-content/uploads/2026/04/image-300x206.png 300w, https://buildandbail.com/wp-content/uploads/2026/04/image-768x526.png 768w" sizes="auto, (max-width: 896px) 100vw, 896px" /></figure>



<p class="wp-block-paragraph">Six seasons of this. Six seasons of cross-referencing box scores at midnight on a Sunday, praying I don&#8217;t fat-finger someone&#8217;s receiving yards and start a controversy in the group chat.</p>



<p class="wp-block-paragraph">The league rules aren&#8217;t complicated. They&#8217;re just specific enough that no fantasy platform supports them.</p>



<p class="wp-block-paragraph">Here&#8217;s the format: you draft NFL playoff players. No bench. Just a starting lineup — QB, two RBs, two WRs, a TE, and a FLEX. Points are cumulative across the entire postseason. No head-to-head matchups. No weekly resets. Your guys score until they stop playing football.</p>



<p class="wp-block-paragraph">When a player&#8217;s team gets eliminated, you get substitutions. Four of them. Total. For the whole playoffs. Use one because your receiver&#8217;s team lost in the wild card round, fine — but now you&#8217;ve only got three left. Use one voluntarily because you think you can upgrade at tight end? Bold move. Same cost.</p>



<p class="wp-block-paragraph">There&#8217;s a pick deadline each round. PPR scoring with 2-point conversion math that requires subtracting out the receiving yards, rushing yards, and reception points that were already awarded — otherwise you&#8217;re double-counting. The kind of rules that make perfect sense when you&#8217;re explaining them over beers and make every fantasy app&#8217;s settings page completely useless.</p>



<p class="wp-block-paragraph">So every January, I become a human spreadsheet. Collecting emails. Cross-referencing box scores. Copy-pasting stat lines into a Google Sheet and hoping I didn&#8217;t accidentally give someone else&#8217;s touchdown to the wrong guy.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="702" height="647" src="https://buildandbail.com/wp-content/uploads/2026/04/image-1.png" alt="image" class="wp-image-1731" title="I&#039;ve been running a playoff fantasy football league since 2021. Manually. The whole thing." srcset="https://buildandbail.com/wp-content/uploads/2026/04/image-1.png 702w, https://buildandbail.com/wp-content/uploads/2026/04/image-1-300x276.png 300w" sizes="auto, (max-width: 702px) 100vw, 702px" /></figure>



<p class="wp-block-paragraph">This year I decided to stop doing that.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Planning Conversation</h2>



<p class="wp-block-paragraph">Same workflow as <a href="https://buildandbail.com/whostat-sports-guessing-game-claude-code-build/" class="ek-link">WhoStat</a>. Before I opened Claude Code, I sat in a regular Claude chat and talked through every rule, every edge case, every &#8220;wait, what happens when&#8230;&#8221; scenario.</p>



<p class="wp-block-paragraph">Roster structure. Substitution logic. The scoring engine — which turned out to be the hardest part, because the 2-point conversion math has to actively undo the PPR and yardage points that were already awarded to avoid counting them twice. That&#8217;s not a setting you toggle. That&#8217;s custom logic that I&#8217;ve been doing in my head while staring at a spreadsheet at 11pm for six straight Januarys.</p>



<p class="wp-block-paragraph">I walked through pick deadlines, the admin panel I&#8217;d need to enter scores, how the public standings page should work so people can stop texting me &#8220;what&#8217;s the score,&#8221; and what happens when someone burns all four subs by the divisional round.</p>



<p class="wp-block-paragraph">Thirty minutes. Ten specific prompts covering project setup, data schema, the scoring engine, a query layer, public standings and team detail pages, an admin panel, business rule validation, API routes, and deployment.</p>



<p class="wp-block-paragraph">Ten prompts. That&#8217;s the whole app that replaces six years of spreadsheet misery.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">What It Actually Does Now</h2>



<p class="wp-block-paragraph"><a href="https://ffplayoffs-production.up.railway.app/" target="_blank" aria-label="The site (opens in a new tab)" rel="noreferrer noopener" class="ek-link">The site</a> has a registration page where players pick their own seven-player roster and submit it themselves. No more emails. No more me manually typing &#8220;Josh Allen&#8221; into a cell at 1am because someone sent me their picks as a bulleted text message with no last names.</p>



<figure class="wp-block-image size-full"><a href="https://ffplayoffs-production.up.railway.app/" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="856" height="354" src="https://buildandbail.com/wp-content/uploads/2026/04/image-2.png" alt="image" class="wp-image-1732" title="I&#039;ve been running a playoff fantasy football league since 2021. Manually. The whole thing." srcset="https://buildandbail.com/wp-content/uploads/2026/04/image-2.png 856w, https://buildandbail.com/wp-content/uploads/2026/04/image-2-300x124.png 300w, https://buildandbail.com/wp-content/uploads/2026/04/image-2-768x318.png 768w" sizes="auto, (max-width: 856px) 100vw, 856px" /></a></figure>



<p class="wp-block-paragraph">There&#8217;s a public leaderboard so everyone can check standings without texting the commissioner. A player results page showing how every drafted player is scoring across all rounds. An admin panel where I enter stats after each round — still manual, but now I&#8217;m entering them once into a real interface instead of hunting through a spreadsheet.</p>



<p class="wp-block-paragraph">And the best part: a Hall of Champions page with every winner and runner-up since 2021. Gerard Balsamo sitting at two titles and three finals appearances like the dynasty he apparently is. The league&#8217;s history actually lives somewhere now instead of in scattered group chat memories.</p>



<p class="wp-block-paragraph">Hosted on Railway. No database — just the app doing its thing. The commissioner still enters scores manually, but the site handles the math, the standings, the substitution tracking, and the public-facing everything.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Build</h2>



<p class="wp-block-paragraph">Ten prompts, fed to Claude Code one at a time. The same approach that worked for <a href="https://buildandbail.com/whostat-listed-for-sale-flippa/" class="ek-link">WhoStat</a> — architect in chat, execute in Code.</p>



<p class="wp-block-paragraph">The scoring engine was the most satisfying part to watch come together. The 2-point conversion logic is genuinely tricky: you have to calculate the base PPR and yardage points, then figure out what portion came on 2-point plays, then subtract that out so you&#8217;re only crediting the conversion bonus. I&#8217;ve been doing this math manually for years. Watching Claude Code turn it into actual working logic felt like handing off a chore I didn&#8217;t realize I hated.</p>



<p class="wp-block-paragraph">The registration flow was the other big win. People can go to the site, see the available players, pick their seven slots, and submit. No account needed. The commissioner (me) reviews and confirms. That single feature eliminates half the emails I used to get every January.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Why This One&#8217;s Different</h2>



<p class="wp-block-paragraph">Most of my builds are absurd on purpose. A pants delivery service. A URL lengthener. A calculator about children and tug of war.</p>



<p class="wp-block-paragraph">This one replaces a real process that&#8217;s been annoying me every January since 2021. No more collecting picks from email. No more manually looking up every stat line on ESPN. No more copy-pasting numbers into a Google Sheet at midnight and hoping I didn&#8217;t give someone else&#8217;s touchdown to the wrong guy.</p>



<p class="wp-block-paragraph">The league members get a real site with live standings and a place to register their own teams. I get an admin panel instead of a spreadsheet. Everyone wins — especially me, because I won the whole league in 2024 and now there&#8217;s a permanent record of it on the internet.</p>



<p class="wp-block-paragraph">Will I maintain it forever? The playoffs only last a month. Build it once, use it every January, tweak it if the rules change. That&#8217;s not bailing — that&#8217;s seasonal engineering.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Build status:</strong> Live <br><strong>Cost:</strong> Hosted on Railway <br><strong>Users:</strong> The same 36 guys who&#8217;ve been arguing about playoff fantasy since 2021 <br><strong>Bail risk:</strong> Low — unless I somehow lose my own league, in which case the site might experience unexpected downtime</p>



<p class="wp-block-paragraph"></p>
<p>Read more at <a href="https://buildandbail.com/playoff-fantasy-football-website-build/">Build and Bail</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://buildandbail.com/playoff-fantasy-football-website-build/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>I Listed My Sports Guessing Game for Sale on Flippa</title>
		<link>https://buildandbail.com/whostat-listed-for-sale-flippa/</link>
					<comments>https://buildandbail.com/whostat-listed-for-sale-flippa/#respond</comments>
		
		<dc:creator><![CDATA[CT]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 14:20:25 +0000</pubDate>
				<category><![CDATA[Build Logs]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[bail]]></category>
		<category><![CDATA[build log]]></category>
		<category><![CDATA[claude code]]></category>
		<category><![CDATA[flippa]]></category>
		<category><![CDATA[for sale]]></category>
		<category><![CDATA[side project]]></category>
		<category><![CDATA[sports]]></category>
		<category><![CDATA[whostat]]></category>
		<guid isPermaLink="false">https://buildandbail.com/?p=1691</guid>

					<description><![CDATA[Build: WhoStat → Flippa listing Tools used: Claude (chat), Claude Code, Flippa This is the first Build and Bail project to complete the full cycle. Idea. Build. Ship. Bail. WhoStat is a daily sports stats guessing game — Wordle but for sports nerds. You get a career stat line with no name attached and three [&#8230;]<p>Read more at <a href="https://buildandbail.com/whostat-listed-for-sale-flippa/">Build and Bail</a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Build: WhoStat → Flippa listing</strong> <br><strong>Tools used: Claude (chat), Claude Code, Flippa</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">This is the first Build and Bail project to complete the full cycle. Idea. Build. Ship. Bail.</p>



<p class="wp-block-paragraph">WhoStat is a daily sports stats guessing game — Wordle but for sports nerds. You get a career stat line with no name attached and three guesses to figure out who the player is. Three puzzles a day: NFL, NBA, MLB. Wrong guesses unlock hints. New puzzles every day. 750 players in the database. The site runs itself.</p>



<p class="wp-block-paragraph">I already wrote the full build log — how I used regular Claude chat to plan the whole project, turned that into twelve prompts, and fed them to Claude Code one at a time to build the thing in a few hours. You can read that here: <a href="https://buildandbail.com/whostat-sports-guessing-game-claude-code-build/" class="ek-link">WhoStat Build Log</a></p>



<p class="wp-block-paragraph">This post is about the other half. The bail.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Why I&#8217;m Selling It</h2>



<p class="wp-block-paragraph">Because that&#8217;s the whole point.</p>



<p class="wp-block-paragraph">WhoStat works. It&#8217;s a fun game. I play it myself sometimes. But I&#8217;m not the person who&#8217;s going to add leaderboards, streak tracking, push notifications, and an ad layer. I&#8217;m not going to maintain a player database across three sports for the next five years. I know who I am.</p>



<p class="wp-block-paragraph">I built it to see if I could build it. I could. Now it&#8217;s someone else&#8217;s turn.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Flippa Listing</h2>



<p class="wp-block-paragraph">I listed WhoStat on Flippa under Projects &amp; Concepts — because that&#8217;s exactly what it is. A fully built digital asset with no revenue. Pre-monetization. The buyer gets the domain, the codebase, the 750-player database, and a deployment pipeline that costs nothing to run.</p>



<p class="wp-block-paragraph">The honest pitch: this is a working product with a clear path to making money — ads, premium features, more sports — but zero financial history. You&#8217;re buying the build, not the business. Someone who wants a sports daily game without starting from scratch, this is their shortcut.</p>



<p class="wp-block-paragraph">Check out the listing here: <a href="https://flippa.com/12733039-daily-sports-stats-guessing-game-wordle-meets-espn-three-puzzles-daily-nfl-nba-mlb-750-players-fully-built-static-site-no-backend-zero-hosting-costs">WhoStat on Flippa</a></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Takeaway</h2>



<p class="wp-block-paragraph">The Build and Bail philosophy isn&#8217;t about building things that fail. It&#8217;s about building things fast, being honest about whether you&#8217;re the right person to keep running them, and making room for the next idea.</p>



<p class="wp-block-paragraph">WhoStat didn&#8217;t fail. I just finished my part.</p>



<p class="wp-block-paragraph">If it sells, great — someone else gets a head start on something cool. If it doesn&#8217;t, the domain&#8217;s still mine, the game still works, and the build log still exists as proof that you can go from &#8220;I have an idea&#8221; to &#8220;it&#8217;s listed for sale&#8221; in less time than most people spend debating their tech stack.</p>



<p class="wp-block-paragraph">Launch. Validate. Abandon. Repeat.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Play it:</strong> <a href="https://www.whostat.com">whostat.com</a></p>



<p class="wp-block-paragraph"><strong>Buy it:</strong> <a href="https://flippa.com/12733039-daily-sports-stats-guessing-game-wordle-meets-espn-three-puzzles-daily-nfl-nba-mlb-750-players-fully-built-static-site-no-backend-zero-hosting-costs">WhoStat on Flippa</a></p>



<p class="wp-block-paragraph"><strong>Build log:</strong> <a href="https://buildandbail.com/whostat-sports-guessing-game-claude-code-build/">How I Built WhoStat</a></p>



<p class="wp-block-paragraph"><strong>Status:</strong> For sale. The circle is complete.</p>
<p>Read more at <a href="https://buildandbail.com/whostat-listed-for-sale-flippa/">Build and Bail</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://buildandbail.com/whostat-listed-for-sale-flippa/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>I Used Claude to Plan a Sports Guessing Game, Then Used Claude to Build It</title>
		<link>https://buildandbail.com/whostat-sports-guessing-game-claude-code-build/</link>
					<comments>https://buildandbail.com/whostat-sports-guessing-game-claude-code-build/#respond</comments>
		
		<dc:creator><![CDATA[CT]]></dc:creator>
		<pubDate>Mon, 30 Mar 2026 12:18:23 +0000</pubDate>
				<category><![CDATA[Build Logs]]></category>
		<category><![CDATA[ai tools]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[claude code]]></category>
		<category><![CDATA[cloudflare]]></category>
		<category><![CDATA[github pages]]></category>
		<category><![CDATA[mlb]]></category>
		<category><![CDATA[nba]]></category>
		<category><![CDATA[next.js]]></category>
		<category><![CDATA[nfl]]></category>
		<category><![CDATA[side project]]></category>
		<category><![CDATA[sports]]></category>
		<category><![CDATA[wordle]]></category>
		<guid isPermaLink="false">https://buildandbail.com/?p=1682</guid>

					<description><![CDATA[Build: WhoStat — a daily sports stats guessing game Time spent: A few hours Tools used: Claude (chat), Claude Code, GitHub Pages, Cloudflare The idea was simple: Wordle, but for sports nerds. You get a stat line — career numbers, no name attached — and three guesses to figure out which player it belongs to. [&#8230;]<p>Read more at <a href="https://buildandbail.com/whostat-sports-guessing-game-claude-code-build/">Build and Bail</a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Build: WhoStat — a daily sports stats guessing game</strong> <br><strong>Time spent: A few hours</strong> <br><strong>Tools used: Claude (chat), Claude Code, GitHub Pages, Cloudflare</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">The idea was simple: Wordle, but for sports nerds.</p>



<p class="wp-block-paragraph">You get a stat line — career numbers, no name attached — and three guesses to figure out which player it belongs to. Get it wrong, you get a hint. Get it wrong again, bigger hint. Three sports, three daily puzzles: NFL, NBA, MLB. Come back tomorrow for new ones.</p>



<p class="wp-block-paragraph">That&#8217;s WhoStat.</p>



<p class="wp-block-paragraph">The interesting part isn&#8217;t the idea. There are a dozen sports guessing games out there. The interesting part is how I built it — because I used Claude twice. First as a thinking partner to plan the whole thing. Then as the builder to actually make it.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Phase One: Thinking Out Loud With Claude</h2>



<p class="wp-block-paragraph">Before I wrote a single line of code — before I opened Claude Code at all — I sat down in a regular Claude chat and just started talking through the project.</p>



<p class="wp-block-paragraph">This is the part most people skip when they talk about building with AI. Everyone wants to show the finished product. Nobody talks about the conversation that got them there.</p>



<p class="wp-block-paragraph">I started broad. Here&#8217;s what I want to build. A daily sports guessing game. Three sports. Stat-based clues. Wordle-style progression. Then I started asking Claude to help me make decisions. How should the hint system work? Should it be one puzzle that rotates sports, or three puzzles running at the same time? What stats actually make good clues versus ones that give it away immediately?</p>



<p class="wp-block-paragraph">Claude helped me think through it the way a coworker would — except this coworker never gets tired of your side project and doesn&#8217;t change the subject to talk about their own thing.</p>



<p class="wp-block-paragraph">By the end of that conversation, I had a clear architecture: three simultaneous daily puzzles with independent game states, a static site with no backend, player data bundled as JSON at build time, and a phased prompt plan I could hand directly to Claude Code.</p>



<p class="wp-block-paragraph">That last part is the move. I didn&#8217;t just plan the app — I planned the prompts. Twelve of them, organized into five build phases: scaffolding and data, game logic, UI, social sharing and polish, and deployment. Each prompt was specific enough that Claude Code could execute it without me having to babysit every decision.</p>



<p class="wp-block-paragraph">Regular Claude chat became the architect. Claude Code became the contractor. Same brain, different jobs.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Phase Two: Building It With Claude Code</h2>



<p class="wp-block-paragraph">The build itself used my usual stack: Claude Code writing the code, pushing to GitHub, deployed through Cloudflare Pages. Next.js with static export and Tailwind CSS. No database, no server, no API calls at runtime. Everything baked in at build time.</p>



<p class="wp-block-paragraph">I fed Claude Code the prompts one at a time and let it work. Scaffolding went up clean. Game logic came together. The UI landed in a good spot without much fussing.</p>



<p class="wp-block-paragraph">Then the problems started.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Snags</h2>



<p class="wp-block-paragraph"><strong>The API wall.</strong> My original plan was to pull player data from real sports APIs — balldontlie.io for NBA, the MLB Stats API, and so on. Smart plan. One problem: Claude Code runs in a sandboxed environment, and those APIs aren&#8217;t reachable from inside it. The connection just dies.</p>



<p class="wp-block-paragraph">So I pivoted. Instead of building a data pipeline that fetches from APIs, I had Claude Code generate curated static JSON datasets directly. Two hundred and fifty players per sport, all active from 2015 to present including recently retired guys. Career stats, accolades, difficulty ratings — all baked right into the build. No API dependency at all.</p>



<p class="wp-block-paragraph">Honestly? The result is better. No rate limits. No API keys to manage. No risk of a third-party service going down and taking my game with it. Sometimes the workaround is the upgrade.</p>



<p class="wp-block-paragraph"><strong>The team history problem.</strong> This one was sneakier. Players change teams. A lot. And the initial data wasn&#8217;t reflecting that — guys were showing up with only their current team, which makes the guessing game either too easy or misleading depending on who it is.</p>



<p class="wp-block-paragraph">If you&#8217;re trying to guess a player from their career stats and the only team listed is where they finished, you&#8217;re missing half the puzzle. A quarterback&#8217;s career numbers look very different when you know they played for three franchises versus one. That context matters for the game to feel fair and fun.</p>



<p class="wp-block-paragraph">Getting Claude Code to handle team histories properly — multiple teams, in order, with the right years — took some back and forth. Not a showstopper, but the kind of thing where you realize the data model you planned in phase one didn&#8217;t account for the messy reality of actual sports careers.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">What WhoStat Actually Does</h2>



<p class="wp-block-paragraph">You go to whostat.com. You pick a sport — NFL, NBA, or MLB. You see a stat card with career numbers: touchdowns, yards, completions, whatever&#8217;s relevant to that sport. No name. No photo. Just numbers.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="665" height="613" src="https://buildandbail.com/wp-content/uploads/2026/03/image.png" alt="image" class="wp-image-1684" title="I Used Claude to Plan a Sports Guessing Game, Then Used Claude to Build It" srcset="https://buildandbail.com/wp-content/uploads/2026/03/image.png 665w, https://buildandbail.com/wp-content/uploads/2026/03/image-300x277.png 300w" sizes="auto, (max-width: 665px) 100vw, 665px" /></figure>



<p class="wp-block-paragraph">You get three guesses. Each wrong guess unlocks a new hint — maybe the player&#8217;s years active, maybe an accolade, maybe a team. By the third guess, you&#8217;ve got enough information that you should be able to narrow it down if you know your stuff.</p>



<p class="wp-block-paragraph">Get it right and you can share your result. Come back tomorrow and there are three new puzzles waiting.</p>



<p class="wp-block-paragraph">The player pool covers 250 players per sport, all from roughly the last decade, which keeps it current enough that casual fans have a shot but deep enough that the hard ones will stump people.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Two-Claude Workflow</h2>



<p class="wp-block-paragraph">The real takeaway from this build isn&#8217;t WhoStat itself — it&#8217;s the process.</p>



<p class="wp-block-paragraph">Using Claude chat to plan and Claude Code to build is a workflow that makes these projects dramatically faster. The planning conversation isn&#8217;t filler. It&#8217;s where you make the decisions that save you hours of debugging later. What&#8217;s the data model? How does state management work? What are the edge cases? You answer all of that before a single file gets created.</p>



<p class="wp-block-paragraph">Then when you hand Claude Code a well-defined prompt, it actually executes. It&#8217;s not guessing what you want. It&#8217;s building what you already decided.</p>



<p class="wp-block-paragraph">The whole thing — planning, building, debugging the API issue, fixing the team history problem, deploying — took a few hours. For a fully functional three-sport daily game with 750 players and a share feature.</p>



<p class="wp-block-paragraph">I&#8217;m not saying every build will go this smoothly. But the two-step approach — think first, build second, with the same tool doing both — is the closest thing I&#8217;ve found to a repeatable system for shipping side projects fast.</p>



<p class="wp-block-paragraph">And that&#8217;s kind of the whole point of Build and Bail.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Play it:</strong> <a href="https://www.whostat.com" target="_blank" aria-label="whostat.com (opens in a new tab)" rel="noreferrer noopener" class="ek-link">whostat.com</a></p>



<p class="wp-block-paragraph"><strong>Stack:</strong> Claude (chat) → Claude Code → Next.js → GitHub Pages → Cloudflare</p>



<p class="wp-block-paragraph"><strong>Status:</strong> Live. Until I get bored.</p>
<p>Read more at <a href="https://buildandbail.com/whostat-sports-guessing-game-claude-code-build/">Build and Bail</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://buildandbail.com/whostat-sports-guessing-game-claude-code-build/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>I Asked AI How to Sell Golf Ball Markers and It Told Me to Chill</title>
		<link>https://buildandbail.com/white-knuckle-golf-listing-strategy-claude/</link>
					<comments>https://buildandbail.com/white-knuckle-golf-listing-strategy-claude/#respond</comments>
		
		<dc:creator><![CDATA[CT]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 12:00:08 +0000</pubDate>
				<category><![CDATA[Build Logs]]></category>
		<category><![CDATA[build log]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[etsy]]></category>
		<category><![CDATA[listing strategy]]></category>
		<category><![CDATA[white knuckle golf]]></category>
		<guid isPermaLink="false">https://buildandbail.com/?p=1676</guid>

					<description><![CDATA[Build: White Knuckle Golf — Listing Strategy Time spent: ~15 minutes Tools used: Claude The Problem White Knuckle Golf has three text designs. Three. And I was already spiraling about listing architecture. Should every text-on-every-product be its own listing? Should I group by product with text as a variant? Should the text be the hero [&#8230;]<p>Read more at <a href="https://buildandbail.com/white-knuckle-golf-listing-strategy-claude/">Build and Bail</a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Build: </strong>White Knuckle Golf — Listing Strategy <br><strong>Time spent: </strong>~15 minutes <br><strong>Tools used: </strong>Claude</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">The Problem</h3>



<p class="wp-block-paragraph"><a href="https://www.whiteknucklegolf.com" target="_blank" aria-label="White Knuckle Golf (opens in a new tab)" rel="noreferrer noopener" class="ek-link">White Knuckle Golf</a> has three text designs. Three. And I was already spiraling about listing architecture.</p>



<p class="wp-block-paragraph">Should every text-on-every-product be its own listing? Should I group by product with text as a variant? Should the text be the hero and the product be the dropdown? There are entire Etsy subreddits dedicated to this question and somehow everyone disagrees with everyone.</p>



<p class="wp-block-paragraph">So I did what any self-respecting Build and Bail operator does — I asked Claude.</p>



<h3 class="wp-block-heading">What Claude Came Back With</h3>



<p class="wp-block-paragraph">Claude framed the whole thing as a tradeoff between three options, and honestly the framework alone was worth the conversation:</p>



<p class="wp-block-paragraph"><strong>Option 1: One listing per text × product combo.</strong> Maximum SEO surface area. Every listing gets its own title, its own keywords, its own chance to rank. The downside is you&#8217;re spreading reviews thin and managing a ton of listings. Claude called it the &#8220;maximum SEO play&#8221; — best reserved for your top performers, not your whole catalog.</p>



<p class="wp-block-paragraph"><strong>Option 2: Each product, multiple text options as variants.</strong> The classic Shopify approach. Clean storefront, consolidated reviews, easy to manage. But the listing title has to go generic — &#8220;Funny Golf Ball Markers&#8221; instead of the actual phrase that someone&#8217;s searching for. Good for a store with existing traffic. Not great when nobody knows you exist yet.</p>



<p class="wp-block-paragraph"><strong>Option 3: Each text design, multiple products as variants.</strong> This one was the spicy take. The <em>phrase</em> is the product. Nobody&#8217;s buying &#8220;a ball marker&#8221; — they&#8217;re buying &#8220;Here Comes The Money Shot&#8221; This approach makes the text the hero and lets you bolt on new products (markers, end caps, whatever&#8217;s next) without restructuring everything.</p>



<p class="wp-block-paragraph">Claude&#8217;s recommendation was a hybrid: Option 3 as the primary store structure, with a handful of Option 1 single-combo listings on Etsy for your best phrases.</p>



<h3 class="wp-block-heading">Then I Said &#8220;I Only Have 3 Designs&#8221;</h3>



<p class="wp-block-paragraph">And Claude basically told me to stop overthinking it.</p>



<p class="wp-block-paragraph">The actual advice: on Etsy, list every text × product combo individually. With 3 designs and 6 products, that&#8217;s 18 listings. Etsy rewards individual listings with their own search placement and reviews. At this scale, the &#8220;management nightmare&#8221; isn&#8217;t a nightmare — it&#8217;s a Tuesday afternoon.</p>



<p class="wp-block-paragraph">On my website, go text-as-hero with product variants. Keep it clean, keep the brand identity front and center. The site has no organic traffic yet anyway, so the SEO architecture matters way less than making the shopping experience feel intentional.</p>



<p class="wp-block-paragraph">And then the real gut punch: <em>&#8220;The real priority at 3 designs isn&#8217;t listing structure — it&#8217;s getting to 10-15 designs so the catalog feels like a real brand and not a side project.&#8221;</em></p>



<h3 class="wp-block-heading">What I Actually Decided</h3>



<p class="wp-block-paragraph">Etsy: individual listings per combo. </p>



<p class="wp-block-paragraph">Website: text-first pages with product toggles. </p>



<p class="wp-block-paragraph">Exactly what Claude said. Took about 5 minutes of conversation to go from &#8220;paralyzed by options&#8221; to &#8220;clear plan, moving on.&#8221;</p>



<h3 class="wp-block-heading">The Takeaway</h3>



<p class="wp-block-paragraph">This is exactly the kind of decision that kills momentum for solo operators. You can spend three days reading forum threads about Etsy SEO or you can have a structured conversation with an AI that understands your specific situation — 3 designs, two sales channels, zero traffic — and gives you a framework that actually scales when you&#8217;re ready for it.</p>



<p class="wp-block-paragraph">The framework matters more than the answer. Now I know <em>why</em> I&#8217;m structuring things this way, which means when I hit 10+ designs, I already know what changes and what doesn&#8217;t.</p>



<p class="wp-block-paragraph">But for now? Ship the 3 listings. Make more designs. Stop architecturing and start selling.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Build Status:</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Strategy locked. Listings almost live. <br><strong>What&#8217;s Next:</strong> Finish the website and build the Etsy shop. More designs. The catalog is the bottleneck, not the structure. <br><strong>Bail Risk:</strong> Low. This one&#8217;s a real business.</p>



<p class="wp-block-paragraph"></p>
<p>Read more at <a href="https://buildandbail.com/white-knuckle-golf-listing-strategy-claude/">Build and Bail</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://buildandbail.com/white-knuckle-golf-listing-strategy-claude/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>I Built the Opposite of a URL Shortener (It Doesn&#8217;t Work and Cost Me Nothing)</title>
		<link>https://buildandbail.com/url-longener-build-log/</link>
					<comments>https://buildandbail.com/url-longener-build-log/#respond</comments>
		
		<dc:creator><![CDATA[CT]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 17:11:35 +0000</pubDate>
				<category><![CDATA[Build Logs]]></category>
		<category><![CDATA[bizbyct]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[urlongener]]></category>
		<guid isPermaLink="false">https://buildandbail.com/?p=1673</guid>

					<description><![CDATA[Everyone shortens URLs. I went the other direction. The idea hit me while hovering over a suspicious bit.ly link — you know the feeling. You don&#8217;t know where it goes. You don&#8217;t trust it. You click it anyway because you&#8217;re brave and/or reckless. But what if the link had been longer? More path segments. More [&#8230;]<p>Read more at <a href="https://buildandbail.com/url-longener-build-log/">Build and Bail</a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Everyone shortens URLs. I went the other direction.</p>



<p class="wp-block-paragraph">The idea hit me while hovering over a suspicious bit.ly link — you know the feeling. You don&#8217;t know where it goes. You don&#8217;t trust it. You click it anyway because you&#8217;re brave and/or reckless. But what if the link had been <em>longer</em>? More path segments. More parameters. More words like &#8220;verified&#8221; and &#8220;enterprise&#8221; and &#8220;secure&#8221; baked right into the URL? Would you have trusted it more?</p>



<p class="wp-block-paragraph">I would have. That&#8217;s the whole premise.</p>



<p class="wp-block-paragraph"><strong>URLongener® is a website that takes a short URL and makes it significantly longer.</strong> It does not redirect anywhere. The output URL is not clickable in any meaningful sense. It looks extremely professional.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Build</h2>



<p class="wp-block-paragraph">Zero dollars. One weekend. The concept went from thought to deployed product faster than I could talk myself out of it, which is the whole point.</p>



<p class="wp-block-paragraph">The tool lives at <a href="https://www.bizbyct.com/urlongener">bizbyct.com/urlongener</a>. You paste in a URL. You get back a longer version of that URL. The expansion algorithm — and yes, I&#8217;m calling it that — appends trust signals, compliance indicators, enterprise path segments, and a full UTM parameter suite to whatever you put in.</p>



<p class="wp-block-paragraph">Example:</p>



<p class="wp-block-paragraph"><strong>Input (suspicious):</strong> <code>https://bit.ly/3xK2mPq</code></p>



<p class="wp-block-paragraph"><strong>Output (trustworthy):</strong> <code>https://bizbyct.com/urlongener/redirect/enterprise/v2/destination/verified/secure/professional/trustworthy/link/go/3xK2mPq?utm_source=urlongener&amp;utm_medium=expansion&amp;utm_campaign=confidence&amp;session=authentic&amp;validated=true&amp;expanded_by=URLongener_Professional_Enterprise_Grade_URL_Expansion_Platform_v2_dot_0</code></p>



<p class="wp-block-paragraph">Does that URL go anywhere? No. Does it look like it was generated by a serious organization that thought carefully about it? Absolutely.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Numbers (Full Transparency)</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Metric</th><th>Value</th></tr></thead><tbody><tr><td>Build time</td><td>One weekend</td></tr><tr><td>Total spend</td><td>$0</td></tr><tr><td>Revenue</td><td>$0</td></tr><tr><td>Total users</td><td>1 (me)</td></tr><tr><td>URLs elongated</td><td>47</td></tr><tr><td>Avg length increase</td><td>~8x</td></tr><tr><td>URLs that actually work</td><td>0</td></tr><tr><td>Pre-money valuation</td><td>$800,000</td></tr><tr><td>Basis for valuation</td><td>It looks like it works</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">The 47 elongations are all mine. I have used this tool 47 times despite it not functioning. I find this acceptable.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Business Model (Theoretical)</h2>



<p class="wp-block-paragraph">There&#8217;s a freemium SaaS structure in place:</p>



<ul class="wp-block-list">
<li><strong>Free</strong> — 10 elongations/month, standard trust signals</li>



<li><strong>Professional ($12/mo)</strong> — unlimited elongations, maximum confidence parameters, extended path segment library</li>



<li><strong>Enterprise (custom)</strong> — branded path segments, custom domain elongation, dedicated account manager (me)</li>
</ul>



<p class="wp-block-paragraph">Payment infrastructure does not exist. The product does not redirect. These are known issues.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">The Verdict</h2>



<p class="wp-block-paragraph">URLongener generates longer URLs. What those URLs do is between you and your browser. I built it for nothing, it has earned nothing, and I have used it 47 times anyway. That tracks.</p>



<p class="wp-block-paragraph">If you&#8217;d like a longer URL that goes nowhere, it&#8217;s live and free: <a href="https://www.bizbyct.com/urlongener" target="_blank" aria-label=" (opens in a new tab)" rel="noreferrer noopener" class="ek-link">bizbyct.com/urlongener</a></p>



<p class="wp-block-paragraph">If you&#8217;d like to invest in this at an $800K pre-money valuation, the pitch deck is also live: <a href="https://www.bizbyct.com/pitch-urlongener" class="ek-link">bi</a><a href="https://www.bizbyct.com/pitch-urlongener" target="_blank" aria-label="zbyct.com/pitch-urlongener (opens in a new tab)" rel="noreferrer noopener" class="ek-link">zbyct.com/pitch-urlongener</a></p>



<p class="wp-block-paragraph">Current MRR: $0. Projected MRR: the math on this one is unclear.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>URLongener® is a registered mark in CT&#8217;s notes app. Longer URLs are not proven to be more trustworthy. URLongener operates on the assumption that they are.</em></p>



<p class="wp-block-paragraph"></p>
<p>Read more at <a href="https://buildandbail.com/url-longener-build-log/">Build and Bail</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://buildandbail.com/url-longener-build-log/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The Tutorial Hidden Inside My Fake Investor Relations Site</title>
		<link>https://buildandbail.com/the-tutorial-hidden-inside-my-fake-investor-relations-site/</link>
					<comments>https://buildandbail.com/the-tutorial-hidden-inside-my-fake-investor-relations-site/#respond</comments>
		
		<dc:creator><![CDATA[CT]]></dc:creator>
		<pubDate>Tue, 10 Mar 2026 23:24:35 +0000</pubDate>
				<category><![CDATA[Build Logs]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[bizbyct]]></category>
		<category><![CDATA[Claude]]></category>
		<guid isPermaLink="false">https://buildandbail.com/?p=1663</guid>

					<description><![CDATA[If you&#8217;ve ever poked around bizbyct.com — my satirical &#8220;investor relations&#8221; page for abandoned businesses — you may have noticed there&#8217;s a tutorial tucked in the nav. Not a fake tutorial. An actual, functional one. That feels like it needs an explanation. When I built BizByCT, the whole joke was presenting dead projects with the [&#8230;]<p>Read more at <a href="https://buildandbail.com/the-tutorial-hidden-inside-my-fake-investor-relations-site/">Build and Bail</a></p>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">If you&#8217;ve ever poked around <a href="https://www.bizbyct.com/" target="_blank" aria-label="bizbyct.com (opens in a new tab)" rel="noreferrer noopener" class="ek-link">bizbyct.com</a> — my satirical &#8220;investor relations&#8221; page for abandoned businesses — you may have noticed there&#8217;s a tutorial tucked in the nav. Not a fake tutorial. An actual, functional one.</p>



<p class="wp-block-paragraph">That feels like it needs an explanation.</p>



<p class="wp-block-paragraph">When I built BizByCT, the whole joke was presenting dead projects with the gravitas of a Series B pitch deck. Abandoned calculator tools. A pants delivery service for emergencies. Formatted like someone was actively soliciting institutional capital. The absurdity was the point.</p>



<p class="wp-block-paragraph">But while I was building the site itself, I kept thinking: <em>this is actually a useful workflow and nobody talks about it this way.</em> Zero installs. Zero IDE. Just a browser, a GitHub account, Cloudflare, and Claude Code doing the heavy lifting. I shipped the whole BizByCT site that way. So I wrote it up and buried it in the nav of my fake investor site, which is exactly the kind of decision-making that defines this brand.</p>



<div class="wp-block-uagb-image uagb-block-c7a747fb wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none"><figure class="wp-block-uagb-image__figure"><img decoding="async" srcset="https://buildandbail.com/wp-content/uploads/2026/03/ship-a-website-with-claude-build-and-bail.png ,https://buildandbail.com/wp-content/uploads/2026/03/ship-a-website-with-claude-build-and-bail.png 780w, https://buildandbail.com/wp-content/uploads/2026/03/ship-a-website-with-claude-build-and-bail.png 360w" sizes="auto, (max-width: 480px) 150px" src="https://buildandbail.com/wp-content/uploads/2026/03/ship-a-website-with-claude-build-and-bail.png" alt="ship a website with claude build and bail" class="uag-image-1664" width="916" height="680" title="ship a website with claude build and bail" loading="lazy" role="img"/></figure></div>



<p class="wp-block-paragraph"><strong>What the tutorial actually covers</strong></p>



<p class="wp-block-paragraph">The short version: how to go from &#8220;I have an idea&#8221; to &#8220;I have a live website with a real domain&#8221; without touching a terminal, downloading an editor, or pretending you understand what a Node.js version conflict means.</p>



<p class="wp-block-paragraph">The stack is three tools: Claude Code (browser-based, connects directly to your GitHub repo), GitHub Pages (free hosting, deploys automatically on push), and Cloudflare (DNS, SSL, free tier handles everything you need). Claude Code writes the code, commits it, and pushes it. GitHub serves it. Cloudflare makes it look like you know what you&#8217;re doing with a real domain.</p>



<p class="wp-block-paragraph">The example I used in the tutorial is a fictional dog walking business called Good Boy Walks. I prompted it, built it live, and published the actual output so you can see exactly what Claude Code produces when you give it a real brief. The site is there. It&#8217;s real. No dogs were walked.</p>



<p class="wp-block-paragraph"><strong>Why this matters for the Build and Bail workflow</strong></p>



<p class="wp-block-paragraph">The whole Build and Bail philosophy is that the build phase should be fast and honest. You&#8217;re not trying to build something perfect — you&#8217;re trying to find out if something works before you spend six months on it. That means the gap between &#8220;I have an idea&#8221; and &#8220;something exists on the internet&#8221; needs to be as small as possible.</p>



<p class="wp-block-paragraph">This tutorial closes that gap. A few hours, three free (or cheap) tools, and you can have a live, real-domain website without asking a developer friend for a favor or watching a three-part YouTube series on web hosting. That&#8217;s the point. The faster you can ship, the faster you find out if the idea has any pulse.</p>



<p class="wp-block-paragraph">I built the tug of war calculator the same way. The BizByCT site itself, same way. When the build is this fast, bailing isn&#8217;t even that painful.</p>



<p class="wp-block-paragraph"><strong>The footnote at the bottom</strong></p>



<p class="wp-block-paragraph">The tutorial ends with: <em>&#8220;This tutorial describes a real workflow. The dog walking business is fictional. No actual dogs were walked during the making of this guide, though several were considered.&#8221;</em></p>



<p class="wp-block-paragraph">That&#8217;s the energy. The workflow is real. The business is fake. The lesson applies to both.</p>



<p class="wp-block-paragraph">Go check it out at <a href="https://www.bizbyct.com/tutorial" target="_blank" aria-label="bizbyct.com/tutorial  (opens in a new tab)" rel="noreferrer noopener" class="ek-link">bizbyct.com/tutorial </a>— and if you&#8217;ve been sitting on an idea because you don&#8217;t know how to build the website part, this is your excuse to run out of reasons not to.</p>



<p class="wp-block-paragraph"></p>
<p>Read more at <a href="https://buildandbail.com/the-tutorial-hidden-inside-my-fake-investor-relations-site/">Build and Bail</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://buildandbail.com/the-tutorial-hidden-inside-my-fake-investor-relations-site/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>I Asked AI a Dumb Question and Made a Whole Video From the Answer</title>
		<link>https://buildandbail.com/hamster-powered-website-ai-video/</link>
					<comments>https://buildandbail.com/hamster-powered-website-ai-video/#respond</comments>
		
		<dc:creator><![CDATA[CT]]></dc:creator>
		<pubDate>Sat, 28 Feb 2026 18:34:45 +0000</pubDate>
				<category><![CDATA[Build Logs]]></category>
		<category><![CDATA[AI Video]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[Google Flow]]></category>
		<category><![CDATA[Google Gemini]]></category>
		<guid isPermaLink="false">https://buildandbail.com/?p=1618</guid>

					<description><![CDATA[The Dumb Question It started the way most of my projects start: with a question nobody asked. How many hamsters running in wheels would it take to power my website? I typed it into Claude, fully expecting a one-line joke. Instead, I got physics. A hamster generates about 0.5 watts on a wheel. They only [&#8230;]<p>Read more at <a href="https://buildandbail.com/hamster-powered-website-ai-video/">Build and Bail</a></p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">The Dumb Question</h2>



<p class="wp-block-paragraph">It started the way most of my projects start: with a question nobody asked. <em>How many hamsters running in wheels would it take to power my website?</em></p>



<p class="wp-block-paragraph">I typed it into Claude, fully expecting a one-line joke. Instead, I got physics. A hamster generates about 0.5 watts on a wheel. They only run about 6 hours a day. A basic web server draws around 400 watts. The math landed on <strong>3,200 hamsters working in four rotating shifts</strong>, each group tricked into a different circadian cycle with controlled lighting.</p>



<p class="wp-block-paragraph">Claude didn&#8217;t just give me a number. It gave me a shift schedule, a facility layout with color-coded rooms, a rest day rotation, and a job title: Hamster Ops Manager.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>The math:</strong> 400W ÷ 0.5W per hamster = 800 running at all times. At 6 hours per hamster per day, you need 4 shifts × 800 = 3,200. Add a rest rotation and buffer, and you&#8217;re looking at about 4,500 hamsters total.</p>
</blockquote>



<p class="wp-block-paragraph">At that point I knew this had to be a video.</p>



<h2 class="wp-block-heading">From Chat to Script</h2>



<p class="wp-block-paragraph">I asked Claude to write me a production script for a 10–15 second video. It came back with a full cinematic breakdown: warehouse layout, props list, shot-by-shot timing, crew roles, even three budget tiers. Way too detailed for what I needed.</p>



<p class="wp-block-paragraph">I told it I was using an AI video tool and to simplify. It immediately stripped everything down to four scene prompts with paired visual and audio direction, each one ready to paste into a generator. That&#8217;s the version I used.</p>



<h2 class="wp-block-heading">The Workflow</h2>



<ol class="wp-block-list">
<li><strong>Ask the dumb question</strong> — Claude did the math, designed the shift system, and mapped out the whole facility.</li>



<li><strong>Generate the script</strong> — Asked Claude for a video script, iterated once to simplify it for AI generation, and added audio cues for Flow.</li>



<li><strong>Paste into Google Flow</strong> — Dropped each scene prompt into Flow / Gemini. It handled visuals and audio together.</li>



<li><strong>Add text overlays</strong> — Quick pass to add the three text cards: hamsters per shift, watts, and the final tagline.</li>
</ol>



<h2 class="wp-block-heading">The Tools</h2>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f916.png" alt="🤖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Claude</strong> (Anthropic) — math, script, prompts</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3ac.png" alt="🎬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Google Flow / Gemini</strong> — AI video generation</li>
</ul>



<p class="wp-block-paragraph">That&#8217;s it. Two tools. The entire process from dumb question to finished video happened in one sitting. No footage was shot. No stock video was licensed. No hamsters were harmed or employed.</p>



<h2 class="wp-block-heading">Watch The Process</h2>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="I Used AI to Calculate and Film a Hamster-Powered Website" width="1200" height="675" src="https://www.youtube.com/embed/VWoV6XJKyJY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Watch The Result</h2>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="I Power My Website With 3,200 Hamsters" width="1200" height="675" src="https://www.youtube.com/embed/ecOVWi-FtCY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">What I Learned</h2>



<p class="wp-block-paragraph">The interesting part wasn&#8217;t the hamsters. It was the feedback loop. I started with a throwaway question, got a surprisingly detailed answer, and realized the answer itself was content. From there, Claude adapted its output three times: first a full production script, then a simplified AI-ready version, then audio cues for a specific platform. Each iteration took one sentence of direction.</p>



<p class="wp-block-paragraph">The gap between &#8220;idea&#8221; and &#8220;finished thing&#8221; is collapsing. Not because the tools are perfect, but because the iteration cost is nearly zero. A bad prompt costs you ten seconds. A good one gets you a video.</p>



<p class="wp-block-paragraph">Will AI-generated video replace real filmmaking? No. But for a weird idea that lives in the space between shitpost and science, it&#8217;s exactly the right tool.</p>



<p class="wp-block-paragraph"><em>3,200 hamsters. 4 shifts. 1 website.</em></p>



<p class="wp-block-paragraph">Keep chasing your silly ideas.</p>



<p class="wp-block-paragraph"><em>-CT</em></p>



<p class="wp-block-paragraph"></p>
<p>Read more at <a href="https://buildandbail.com/hamster-powered-website-ai-video/">Build and Bail</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://buildandbail.com/hamster-powered-website-ai-video/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: buildandbail.com @ 2026-06-14 23:33:25 by W3 Total Cache
-->