About · Team
Brian Wones
Founder · Denver, CO
Background in data-driven growth and strategic operations across the full B2B go-to-market stack: GTM operations, customer success, sales engineering, sales enablement, and revenue/BI. Sandcastle Labs is built on the premise that small teams using AI can outship what used to require entire departments.
Writing by Brian
-
Our own panel has a 7-point noise floor
Build log ·On the panel we run against our own site, one run'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.
-
How Does a One-Character Bug Affect Your AI Visibility Score on GEO Consulting Platforms?
Build log ·One apostrophe moved our scanner's score for a real business from 5/100 to 48/100. The business hadn't changed; our matcher had.
-
We stopped selling Collimer as its own product
Essay ·Sandcastle Labs discontinued Collimer's self-serve plans and folded its marketing into one brand. The product didn't get smaller. It stopped competing with us for attention.
-
How an Agent-Native Studio Found Its Own Broken Links
Build log ·A link-graph sweep of Collimer's 35 guides found 8 orphans, 6 of them the newest, most expensive content on the site.
-
Last Week's Bet Was Tested, and It Held
Build log ·Last week'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.
-
Fractional CMO, agency, or first marketing hire: how a $1–10M SaaS decides
Build log ·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.
-
The Script That Turned a Blank Page Into an Editing Job
Build log ·The company letter kept slipping even though nothing was broken. The fix was a script that assembles a fortnight's evidence automatically, so writing it became editing, not staring at a blank page.
-
August 2026: twenty releases, and five bugs in the number we sell
Essay ·Collimer shipped twenty releases in three weeks, roughly one every working day. Five of them fixed problems in the score itself, and a correct fix to our own site quietly switched off the pipeline that sends this letter.
-
Fractional RevOps: what it is, when a $1–50M SaaS needs it, and what it should cost
Build log ·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.
-
The Studio Built a Second Content Machine Instead of Stretching the First One
Build log ·The same week Nick Bair'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.
-
Naming Collimer: an optical metaphor, a multi-agent naming sprint, and a GEO bet
Essay ·Collimer is named after the instrument that turns scattered light into one aligned beam, chosen through a multi-agent naming sprint and a bet that a coined name is worth more in the agent-search era than a searchable one.
-
The Week the AI-Visibility Number Turned Out to Be Lying in Five Different Ways
Build log ·Collimer'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.
-
The TLS setting that stopped being safe when the database moved
Build log ·A database connection'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.
-
The Pricing Page Said Yes Before the Backend Did
Build log ·Collimer's new pricing page promises unlimited seats. The code enforcing seat limits hasn't caught up yet, and the PR that shipped it said so.
-
A Pipeline Isn't Built Until Someone Else Runs It
Build log ·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.
-
Three releases in four days, and the discipline built to make that safe
Build log ·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.
-
One dependency that couldn't launch took the whole app down with it
Build log ·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.
-
Two fixes that were quietly guessing, corrected the same week
Build log ·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.
-
Naming Profound, and choosing to go slower on purpose
Build log ·Collimer's second launch-post cycle made two real decisions: name a real competitor directly instead of gesturing at 'tools in the market,' and recontextualize the original ten-design-partner ambition instead of quietly replacing it.
-
A content skill you hand to the client is a different design problem than one you keep
Build log ·Building a content skill meant to run inside a client'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.
-
An operating scorecard that runs itself
Build log ·We moved the studio's operating scorecard onto a Neon database and a scheduled tick, and a traffic anomaly proved why that mattered.
-
The output was built for the generator, not the reader
Build log ·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.
-
Engineering with AI means checking its work
Essay ·Building faster with AI agents means more of the output ships unverified by default. Three catches in one week show what checking, not prompting, actually buys you.
-
Three green checks and nothing shipped
Build log ·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.
-
A bug only someone else's machine could find
Build log ·The first real week of dripping build logs instead of bursting on Monday also surfaced a portability bug our mining tool had been hiding.
-
Build logs are not commit lists: a depth pass for the content machine
Build log ·The chronicle's own pipeline learned to rank stories by archetype and scale build-log volume to how eventful the week actually was.
-
Warming up a days-old domain: the cheap SEO that compounds
Build log ·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.
-
The audit right after the rebuild
Build log ·We rebuilt sandcastlelabs.ai on a new brand system, then audited it the same day and caught a leftover internal codename still live.
-
Two a week: giving Collimer its own content engine
Build log ·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.
-
We built an A/B test before we had anyone to test on
Build log ·The homepage now leads with recommendations, not a score. We built EXP-01 to measure the reframe before real traffic arrived.
-
Did we make anything up? Auditing our own site before we launched
Build log ·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.
-
Launching Collimer to ten hand-picked design partners, not the world
Build log ·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.
-
How to keep a marketing site in sync with the product it describes (ours wasn't)
Build log ·Collimer's site and app live in separate repos, so we made the product's own pricing config the single source of truth pricing and engine claims sync from.
-
Running an agent-native studio like a series of small bets
Build log ·We built the agent-native studio workflow behind our operating plan and scoreboard before hiring anyone, so progress gets measured, not guessed.
-
How to tell if AI crawlers are reading your site (ours weren't)
Build log ·Our GEO crawler signal read zero for two reasons, and both were bugs in our own instrumentation, not a lack of real crawlers.
-
Build the machine, then hand someone the keys
Essay ·A small AI-native software studio scales by building loops that collaborators can run, not by adding headcount. The unit that compounds is the loop.
-
Dropping GitHub Actions when the bill came
Build log ·Our GitHub Actions billing lapsed. We replaced it with a pre-push hook. The machine that ships is now the machine that checks.
-
Wiring Center Pane so a non-technical editor can publish without touching the repo
Build log ·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.
-
Five posts shipped, analytics rebuilt for two sites, and the draft flag we forgot
Build log ·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.
-
Lookout: a marketing analytics scorecard that refuses to fabricate trends
Build log ·We built Lookout, an operator analytics scorecard for both marketing sites. It reads PostHog, assesses what'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.
-
Minimum viable legal, deferred lawyer
Build log ·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.
-
A geo-gated consent banner without a database
Build log ·GDPR consent banner built with Vercel's edge IP headers and about 150 lines of Astro middleware. No database, no flag service, no third-party CMP.
-
Launching Collimer's marketing site in a week
Build log ·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.
-
We sent back 59KB of react-dom for a hamburger menu
Build log ·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.
-
Why image generation kept giving us squares, and how we made it cool
Build log ·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.
-
The Chronicler runs itself now (and the point was not automation)
Build log ·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.
-
Stretching the vertical
Build log ·A scan in a second vertical revealed how SaaS-coded our probes were. The fix made us question whether 'alternatives' is even a real category for local services.
-
How we built an MVP with parallel Claude Code agents in three days
Build log ·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.
-
The first letter: where Sandcastle Labs stands, May 2026
Essay ·Site V1 shipped, the chronicle published its first five posts, and Collimer hit v1.0.0 in a three-day agent-fleet build. The first monthly letter from Sandcastle Labs.
-
A clickable mockup in an afternoon
Build log ·An afternoon of Phoenix LiveView produced fourteen connected screens. The clickable mockup is the cheapest discovery tool we have for an AI product.
-
Week one: V1 of the site, and the parts that are not done
Build log ·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.
-
Three providers, one methodology card
Build log ·We wired three LLM providers through one probe runner. The output is a methodology card that shows exactly how each answer was produced.
-
Recommendations are the secret
Build log ·Every GEO tool ships a beautiful dashboard. We bet the value is the recommendation, and rebuilt Collimer so every rec is shippable as written.
-
How the Chronicler works
Essay ·Why a solo studio built an AI-assisted publishing pipeline to share what it is learning, and the human edit gate that keeps it honest.