<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss-styles.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sandcastle Labs · Build logs</title><description>Working notes from inside our projects. What we tried, what the numbers said, what changed.</description><link>https://www.sandcastlelabs.ai/</link><language>en-us</language><atom:link href="https://www.sandcastlelabs.ai/logs/rss.xml" rel="self" type="application/rss+xml"/><item><title>How many AI crawlers should your robots.txt name? Ours went from 20 to 29</title><link>https://www.sandcastlelabs.ai/logs/we-let-every-training-crawler-in-on-purpose/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/we-let-every-training-crawler-in-on-purpose/</guid><description>Our robots.txt grew from 20 to 29 named AI and search agents in four months. A GEO business has to keep that list current.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Four August guides priced a ladder we retired in September</title><link>https://www.sandcastlelabs.ai/logs/four-august-guides-priced-a-ladder-we-retired-in-september/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/four-august-guides-priced-a-ladder-we-retired-in-september/</guid><description>Four Collimer guides still quoted plans we deleted 21 days earlier. The prices were typed into prose, so nothing updated them.</description><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Should You Hire a GEO Specialist, Use AI Consulting Tools, or Let an Agency Handle It?</title><link>https://www.sandcastlelabs.ai/logs/should-you-hire-a-geo-specialist-use-ai-consulting-tools-or-let-an-agency-handle-it/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/should-you-hire-a-geo-specialist-use-ai-consulting-tools-or-let-an-agency-handle-it/</guid><description>For most $1–50M B2B SaaS companies, an AEO/GEO agency beats a full-time specialist, because AI-engine optimization is a continuous scaffolding problem, not a headcount problem.</description><pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Our own panel has a 7-point noise floor</title><link>https://www.sandcastlelabs.ai/logs/our-own-panel-has-a-seven-point-noise-floor/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/our-own-panel-has-a-seven-point-noise-floor/</guid><description>On the panel we run against our own site, one run&apos;s score carries about 7 points of noise either way, and the score moved by less than one point across two weeks of runs. A two-point change tells us nothing.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate></item><item><title>How Does a One-Character Bug Affect Your AI Visibility Score on GEO Consulting Platforms?</title><link>https://www.sandcastlelabs.ai/logs/the-apostrophe-that-scored-a-brand-five-out-of-a-hundred/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/the-apostrophe-that-scored-a-brand-five-out-of-a-hundred/</guid><description>One apostrophe moved our scanner&apos;s score for a real business from 5/100 to 48/100. The business hadn&apos;t changed; our matcher had.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate></item><item><title>How an Agent-Native Studio Found Its Own Broken Links</title><link>https://www.sandcastlelabs.ai/logs/agent-native-studio-found-its-own-broken-links/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/agent-native-studio-found-its-own-broken-links/</guid><description>A link-graph sweep of Collimer&apos;s 35 guides found 8 orphans, 6 of them the newest, most expensive content on the site.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The Price Is Public Because the Sprint Is Guided</title><link>https://www.sandcastlelabs.ai/logs/price-is-public-because-sprint-is-guided/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/price-is-public-because-sprint-is-guided/</guid><description>Collimer cut three self-serve pricing tiers to one $6,500 guided sprint, reversing a standing rule against ever publishing that number.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Last Week&apos;s Bet Was Tested, and It Held</title><link>https://www.sandcastlelabs.ai/logs/the-bet-from-last-week-got-tested-and-held/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/the-bet-from-last-week-got-tested-and-held/</guid><description>Last week&apos;s post was a decision: split the Chronicle from a second, buyer-facing content pipeline before there was evidence it would work. This week is the evidence.</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Fractional CMO, agency, or first marketing hire: how a $1–10M SaaS decides</title><link>https://www.sandcastlelabs.ai/logs/fractional-cmo-agency-or-first-hire/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/fractional-cmo-agency-or-first-hire/</guid><description>The right choice depends on which of three things you are missing: a strategy, a machine, or hands. Most founders at this stage are missing the machine, and none of the three options builds it by default.</description><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The Script That Turned a Blank Page Into an Editing Job</title><link>https://www.sandcastlelabs.ai/logs/the-script-that-turned-a-blank-page-into-an-editing-job/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/the-script-that-turned-a-blank-page-into-an-editing-job/</guid><description>The company letter kept slipping even though nothing was broken. The fix was a script that assembles a fortnight&apos;s evidence automatically, so writing it became editing, not staring at a blank page.</description><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Fractional RevOps: what it is, when a $1–50M SaaS needs it, and what it should cost</title><link>https://www.sandcastlelabs.ai/logs/fractional-revops/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/fractional-revops/</guid><description>A senior owner for your revenue machine at a fraction of a week. The band where renting beats hiring, real price ranges, the five signs you need it now, and when it is the wrong answer.</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The Studio Built a Second Content Machine Instead of Stretching the First One</title><link>https://www.sandcastlelabs.ai/logs/second-content-machine/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/second-content-machine/</guid><description>The same week Nick Bair&apos;s name went public, Sandcastle stood up a second writing pipeline next to the Chronicle, built around real bylines and a rule for keeping the two apart.</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The Week the AI-Visibility Number Turned Out to Be Lying in Five Different Ways</title><link>https://www.sandcastlelabs.ai/logs/the-number-was-lying-five-ways/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/the-number-was-lying-five-ways/</guid><description>Collimer&apos;s engineer found and fixed five separate, unrelated ways its own AI-visibility score had been quietly wrong, in the same four-day window that shipped seven releases.</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The TLS setting that stopped being safe when the database moved</title><link>https://www.sandcastlelabs.ai/logs/the-tls-setting-that-stopped-being-safe/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/the-tls-setting-that-stopped-being-safe/</guid><description>A database connection&apos;s verify_none setting was a defensible second layer of trust when the transport was an authenticated tunnel. After the database moved to the public internet, the identical setting meant the encryption authenticated nobody, and nothing in the code said so.</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The Pricing Page Said Yes Before the Backend Did</title><link>https://www.sandcastlelabs.ai/logs/the-pricing-page-said-yes-before-the-backend-did/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/the-pricing-page-said-yes-before-the-backend-did/</guid><description>Collimer&apos;s new pricing page promises unlimited seats. The code enforcing seat limits hasn&apos;t caught up yet, and the PR that shipped it said so.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>A Pipeline Isn&apos;t Built Until Someone Else Runs It</title><link>https://www.sandcastlelabs.ai/logs/a-pipeline-isnt-built-until-someone-else-runs-it/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/a-pipeline-isnt-built-until-someone-else-runs-it/</guid><description>Chase ran our chronicle-and-PR pipeline solo, extended it into new territory, and went back to fix a gap in his own earlier work along the way.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Three releases in four days, and the discipline built to make that safe</title><link>https://www.sandcastlelabs.ai/logs/three-releases-in-four-days/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/three-releases-in-four-days/</guid><description>Three point releases shipped in four days, each a coherent batch. The release engineering that made the speed defensible, not reckless, shipped in the same window: zero-downtime deploys, a corrected kill timeout, and a branch-protection rule learned from an actual loss.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>One dependency that couldn&apos;t launch took the whole app down with it</title><link>https://www.sandcastlelabs.ai/logs/one-dependency-took-the-whole-app-down/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/one-dependency-took-the-whole-app-down/</guid><description>A Chrome process wired as a permanent child of the root supervisor exhausted its restart budget when it failed to launch, and the exit cascaded into shutting down scans, dashboards, the API, and background jobs together.</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Two fixes that were quietly guessing, corrected the same week</title><link>https://www.sandcastlelabs.ai/logs/two-fixes-that-were-quietly-guessing/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/two-fixes-that-were-quietly-guessing/</guid><description>A database-pool fix and a marketing-attribution default were both confidently wrong in the same shape: each cited its own rationale, and nobody had checked that rationale against the actual code.</description><pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Naming Profound, and choosing to go slower on purpose</title><link>https://www.sandcastlelabs.ai/logs/naming-profound/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/naming-profound/</guid><description>Collimer&apos;s second launch-post cycle made two real decisions: name a real competitor directly instead of gesturing at &apos;tools in the market,&apos; and recontextualize the original ten-design-partner ambition instead of quietly replacing it.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>A content skill you hand to the client is a different design problem than one you keep</title><link>https://www.sandcastlelabs.ai/logs/portable-content-skill-for-a-client/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/portable-content-skill-for-a-client/</guid><description>Building a content skill meant to run inside a client&apos;s own repository, without us in the room, taught three disciplines an internal-only tool can skip. The first correction it got wrong taught us the most.</description><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate></item><item><title>An operating scorecard that runs itself</title><link>https://www.sandcastlelabs.ai/logs/operating-scorecard-that-runs-itself/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/operating-scorecard-that-runs-itself/</guid><description>We moved the studio&apos;s operating scorecard onto a Neon database and a scheduled tick, and a traffic anomaly proved why that mattered.</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate></item><item><title>The output was built for the generator, not the reader</title><link>https://www.sandcastlelabs.ai/logs/output-built-for-the-generator/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/output-built-for-the-generator/</guid><description>Our pitch machine produced a correct artifact in the wrong shape, which meant it failed at the only job that mattered: surviving a handoff between two people.</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Three green checks and nothing shipped</title><link>https://www.sandcastlelabs.ai/logs/three-green-checks/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/three-green-checks/</guid><description>A daily rebuild, a scheduled workflow, and an agent all reported success last week while producing nothing at all. Each one behaved exactly as documented.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>A bug only someone else&apos;s machine could find</title><link>https://www.sandcastlelabs.ai/logs/content-engine-surge-and-honesty/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/content-engine-surge-and-honesty/</guid><description>The first real week of dripping build logs instead of bursting on Monday also surfaced a portability bug our mining tool had been hiding.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Build logs are not commit lists: a depth pass for the content machine</title><link>https://www.sandcastlelabs.ai/logs/chronicle-story-scout-surge/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/chronicle-story-scout-surge/</guid><description>The chronicle&apos;s own pipeline learned to rank stories by archetype and scale build-log volume to how eventful the week actually was.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Warming up a days-old domain: the cheap SEO that compounds</title><link>https://www.sandcastlelabs.ai/logs/seo-warmup-legal/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/seo-warmup-legal/</guid><description>A low-token SEO audit of two days-old sites found a 3-hop redirect, a dateless sitemap, a thin page, and short guide descriptions.</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate></item><item><title>The audit right after the rebuild</title><link>https://www.sandcastlelabs.ai/logs/brand-rebuild-and-self-audit/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/brand-rebuild-and-self-audit/</guid><description>We rebuilt sandcastlelabs.ai on a new brand system, then audited it the same day and caught a leftover internal codename still live.</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Two a week: giving Collimer its own content engine</title><link>https://www.sandcastlelabs.ai/logs/collimers-content-engine/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/collimers-content-engine/</guid><description>Collimer had no working weekly draft loop, so we gave it the same pitch-to-publish rhythm as this site and committed to two posts a week.</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate></item><item><title>We built an A/B test before we had anyone to test on</title><link>https://www.sandcastlelabs.ai/logs/recs-first-hero-ab/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/recs-first-hero-ab/</guid><description>The homepage now leads with recommendations, not a score. We built EXP-01 to measure the reframe before real traffic arrived.</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Did we make anything up? Auditing our own site before we launched</title><link>https://www.sandcastlelabs.ai/logs/did-we-make-anything-up/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/did-we-make-anything-up/</guid><description>Two days before launch we fact-checked our own site and found real mistakes, including 126 stray instances of a habit we ban on our own team.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Launching Collimer to ten hand-picked design partners, not the world</title><link>https://www.sandcastlelabs.ai/logs/collimer-is-live/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/collimer-is-live/</guid><description>Collimer went live July 9: one LinkedIn post, 661 impressions, a handful of DMs, two design partners in and a third coming. Plus the numbers we cut before posting, and the competitor one-liner that did not survive our own fact-check.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate></item><item><title>How to keep a marketing site in sync with the product it describes (ours wasn&apos;t)</title><link>https://www.sandcastlelabs.ai/logs/keeping-the-marketing-site-honest/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/keeping-the-marketing-site-honest/</guid><description>Collimer&apos;s site and app live in separate repos, so we made the product&apos;s own pricing config the single source of truth pricing and engine claims sync from.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Running an agent-native studio like a series of small bets</title><link>https://www.sandcastlelabs.ai/logs/operating-plan-and-scoreboard/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/operating-plan-and-scoreboard/</guid><description>We built the agent-native studio workflow behind our operating plan and scoreboard before hiring anyone, so progress gets measured, not guessed.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>How to tell if AI crawlers are reading your site (ours weren&apos;t)</title><link>https://www.sandcastlelabs.ai/logs/the-crawler-signal-was-us/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/the-crawler-signal-was-us/</guid><description>Our GEO crawler signal read zero for two reasons, and both were bugs in our own instrumentation, not a lack of real crawlers.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Dropping GitHub Actions when the bill came</title><link>https://www.sandcastlelabs.ai/logs/dropping-github-actions/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/dropping-github-actions/</guid><description>Our GitHub Actions billing lapsed. We replaced it with a pre-push hook. The machine that ships is now the machine that checks.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Wiring Center Pane so a non-technical editor can publish without touching the repo</title><link>https://www.sandcastlelabs.ai/logs/center-pane-content-roundtrip/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/center-pane-content-roundtrip/</guid><description>The content pipeline worked fine for people who live in git. A designer coming on board does not. We built a hub round-trip so non-technical collaborators can revise and publish from Center Pane, with a GitHub Action running Claude headless to do the repo work.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Five posts shipped, analytics rebuilt for two sites, and the draft flag we forgot</title><link>https://www.sandcastlelabs.ai/logs/chronicle-ships-w25-and-multisite-analytics/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/chronicle-ships-w25-and-multisite-analytics/</guid><description>The first full multi-post week went out end to end: five W25 build logs pitched, drafted, edited, and published with a real author/editor split. The same week, the analytics package broke free of its hard-coded site name and learned to serve both Sandcastle Labs and Collimer.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Lookout: a marketing analytics scorecard that refuses to fabricate trends</title><link>https://www.sandcastlelabs.ai/logs/lookout-operator-scorecard/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/lookout-operator-scorecard/</guid><description>We built Lookout, an operator analytics scorecard for both marketing sites. It reads PostHog, assesses what&apos;s working with volume-aware confidence, and renders a graph-rich HTML report. Its one design principle: if the numbers are too small to say something real, it says nothing.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Minimum viable legal, deferred lawyer</title><link>https://www.sandcastlelabs.ai/logs/minimum-viable-legal/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/minimum-viable-legal/</guid><description>Privacy Policy and Terms for two static marketing sites, built without a lawyer. Here is the threshold we think we hit, and what would change that.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate></item><item><title>A geo-gated consent banner without a database</title><link>https://www.sandcastlelabs.ai/logs/consent-banner-astro/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/consent-banner-astro/</guid><description>GDPR consent banner built with Vercel&apos;s edge IP headers and about 150 lines of Astro middleware. No database, no flag service, no third-party CMP.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Launching Collimer&apos;s marketing site in a week</title><link>https://www.sandcastlelabs.ai/logs/launching-collimer/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/launching-collimer/</guid><description>Collimer went from a coming-soon page to a full marketing site in five days. Then we deleted a third of it. That was the right call.</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate></item><item><title>We sent back 59KB of react-dom for a hamburger menu</title><link>https://www.sandcastlelabs.ai/logs/the-stack-we-picked/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/the-stack-we-picked/</guid><description>Astro 6, Tailwind v4, Motion, PostHog reverse-proxied through Vercel, and a three-package monorepo underneath. Every piece has one line of defense. Here is what it is.</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Why image generation kept giving us squares, and how we made it cool</title><link>https://www.sandcastlelabs.ai/logs/the-square-image-trap/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/the-square-image-trap/</guid><description>Every hero image came out a 1024x1024 square because one API parameter was silently ignored. The bug was small. The lesson about working with AI image generation was not.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The Chronicler runs itself now (and the point was not automation)</title><link>https://www.sandcastlelabs.ai/logs/the-chronicler-runs-itself/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/the-chronicler-runs-itself/</guid><description>We taught the publishing pipeline to schedule posts on a static Astro site, mine its own week, and send the newsletter unattended. The goal was never hands-off. It was staying organized.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Stretching the vertical</title><link>https://www.sandcastlelabs.ai/logs/stretching-the-vertical/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/stretching-the-vertical/</guid><description>A scan in a second vertical revealed how SaaS-coded our probes were. The fix made us question whether &apos;alternatives&apos; is even a real category for local services.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>How we built an MVP with parallel Claude Code agents in three days</title><link>https://www.sandcastlelabs.ai/logs/three-days-67-commits/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/three-days-67-commits/</guid><description>Parallel Claude Code agents built the Collimer MVP end to end in about three days and 67 commits. The pace is only the headline. The point is what kept it from being a pile of code.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate></item><item><title>A clickable mockup in an afternoon</title><link>https://www.sandcastlelabs.ai/logs/clickable-mockup-in-an-afternoon/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/clickable-mockup-in-an-afternoon/</guid><description>An afternoon of Phoenix LiveView produced fourteen connected screens. The clickable mockup is the cheapest discovery tool we have for an AI product.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Week one: V1 of the site, and the parts that are not done</title><link>https://www.sandcastlelabs.ai/logs/shipping-v1-of-the-studio-site/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/shipping-v1-of-the-studio-site/</guid><description>What shipped in week one of sandcastlelabs.ai: aurora hero, mobile nav, brand tokens, PostHog A/B. And the parts we left visibly unfinished on purpose.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Three providers, one methodology card</title><link>https://www.sandcastlelabs.ai/logs/three-providers-one-methodology-card/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/three-providers-one-methodology-card/</guid><description>We wired three LLM providers through one probe runner. The output is a methodology card that shows exactly how each answer was produced.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Recommendations are the secret</title><link>https://www.sandcastlelabs.ai/logs/recommendations-are-the-secret/</link><guid isPermaLink="true">https://www.sandcastlelabs.ai/logs/recommendations-are-the-secret/</guid><description>Every GEO tool ships a beautiful dashboard. We bet the value is the recommendation, and rebuilt Collimer so every rec is shippable as written.</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>