{
  "schema_version": "1",
  "generated_at": "2026-06-18T18:32:30.115Z",
  "site": "https://www.sandcastlelabs.ai",
  "description": "Machine-readable catalogue of every published Sandcastle Labs chronicle artifact. Surface for agents reading the site programmatically. Schema version 1.",
  "counts": {
    "total": 9,
    "logs": 7,
    "essays": 2,
    "updates": 0
  },
  "series": [
    "beacon-build",
    "chronicle-build",
    "company-update",
    "field-notes",
    "studio-build"
  ],
  "posts": [
    {
      "id": "the-chronicler-runs-itself",
      "kind": "log",
      "title": "The Chronicler runs itself now (and the point was not automation)",
      "summary": "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.",
      "date": "2026-06-17T00:00:00.000Z",
      "url": "/logs/the-chronicler-runs-itself/",
      "series": "chronicle-build",
      "author": null,
      "authorship": "ai-drafted-human-edited",
      "outcomes": {
        "time_spent": "a week of evenings, folded into other work",
        "resulted_in": "a weekly orchestrator, scheduled publishing on a static site, and an automatic newsletter send",
        "decision": "kept"
      },
      "commit_anchor": "8aeb8b7",
      "read_time_minutes": null
    },
    {
      "id": "stretching-the-vertical",
      "kind": "log",
      "title": "Stretching the vertical",
      "summary": "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.",
      "date": "2026-06-16T00:00:00.000Z",
      "url": "/logs/stretching-the-vertical/",
      "series": "beacon-build",
      "author": null,
      "authorship": "ai-drafted-human-edited",
      "outcomes": {
        "time_spent": "one scan and the redesign it forced",
        "resulted_in": "a vertical-specific probe template set and a harder question about our category model",
        "decision": "iterating"
      },
      "commit_anchor": "templates_local_fitness.exs",
      "read_time_minutes": null
    },
    {
      "id": "three-days-67-commits",
      "kind": "log",
      "title": "How we built an MVP with parallel Claude Code agents in three days",
      "summary": "Parallel Claude Code agents built the Beacon 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.",
      "date": "2026-06-15T00:00:00.000Z",
      "url": "/logs/three-days-67-commits/",
      "series": "beacon-build",
      "author": null,
      "authorship": "ai-drafted-human-edited",
      "outcomes": {
        "time_spent": "about three days",
        "resulted_in": "a working MVP across five phases, built by parallel agents and merged serially behind a review",
        "decision": "kept"
      },
      "commit_anchor": "v1.0.0",
      "read_time_minutes": null
    },
    {
      "id": "the-first-letter",
      "kind": "essay",
      "title": "The first letter: where Sandcastle Labs stands, May 2026",
      "summary": "Site V1 shipped, the chronicle published its first five posts, and Beacon hit v1.0.0 in a three-day agent-fleet build. The first monthly letter from Sandcastle Labs.",
      "date": "2026-06-12T00:00:00.000Z",
      "url": "/writing/the-first-letter/",
      "series": "company-update",
      "author": "Brian",
      "authorship": "ai-drafted-human-edited",
      "outcomes": null,
      "commit_anchor": null,
      "read_time_minutes": 4
    },
    {
      "id": "clickable-mockup-in-an-afternoon",
      "kind": "log",
      "title": "A clickable mockup in an afternoon",
      "summary": "An afternoon of Phoenix LiveView produced fourteen connected screens. The clickable mockup is the cheapest discovery tool we have for an AI product.",
      "date": "2026-06-08T00:00:00.000Z",
      "url": "/logs/clickable-mockup-in-an-afternoon/",
      "series": "beacon-build",
      "author": null,
      "authorship": "ai-drafted-human-edited",
      "outcomes": {
        "time_spent": "one afternoon",
        "resulted_in": "fourteen connected LiveView screens that surfaced flows, gaps, and one real trap",
        "decision": "kept"
      },
      "commit_anchor": null,
      "read_time_minutes": null
    },
    {
      "id": "shipping-v1-of-the-studio-site",
      "kind": "log",
      "title": "Week one: V1 of the site, and the parts that are not done",
      "summary": "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.",
      "date": "2026-06-08T00:00:00.000Z",
      "url": "/logs/shipping-v1-of-the-studio-site/",
      "series": "studio-build",
      "author": null,
      "authorship": "ai-drafted-human-edited",
      "outcomes": {
        "time_spent": "week one",
        "resulted_in": "a live V1 with the gaps left visible rather than faked",
        "decision": "kept"
      },
      "commit_anchor": "ed06ddc",
      "read_time_minutes": null
    },
    {
      "id": "three-providers-one-methodology-card",
      "kind": "log",
      "title": "Three providers, one methodology card",
      "summary": "We wired three LLM providers through one probe runner. The output is a methodology card that shows exactly how each answer was produced.",
      "date": "2026-06-08T00:00:00.000Z",
      "url": "/logs/three-providers-one-methodology-card/",
      "series": "beacon-build",
      "author": null,
      "authorship": "ai-drafted-human-edited",
      "outcomes": {
        "time_spent": "Phase 3, eleven tickets",
        "resulted_in": "three providers behind one runner, 394 tests green, a methodology card on every scan",
        "decision": "kept"
      },
      "commit_anchor": "BCN-301..311",
      "read_time_minutes": null
    },
    {
      "id": "recommendations-are-the-secret",
      "kind": "log",
      "title": "Recommendations are the secret",
      "summary": "Every GEO tool ships a beautiful dashboard. We bet the value is the recommendation, and rebuilt Beacon so every rec is shippable as written.",
      "date": "2026-06-07T00:00:00.000Z",
      "url": "/logs/recommendations-are-the-secret/",
      "series": "beacon-build",
      "author": null,
      "authorship": "ai-drafted-human-edited",
      "outcomes": {
        "time_spent": "one build week, zoomed entirely on the recommendation track",
        "resulted_in": "every rec now carries magnitude, a signal timeline, and an effort estimate in hours",
        "decision": "kept"
      },
      "commit_anchor": "b9e4792",
      "read_time_minutes": null
    },
    {
      "id": "how-the-chronicle-works",
      "kind": "essay",
      "title": "How the Chronicler works",
      "summary": "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.",
      "date": "2026-05-28T00:00:00.000Z",
      "url": "/writing/how-the-chronicle-works/",
      "series": "field-notes",
      "author": "Brian Wones",
      "authorship": "ai-drafted-human-edited",
      "outcomes": null,
      "commit_anchor": null,
      "read_time_minutes": 6
    }
  ]
}