From 63bbe7a8715331f97e2230f52d83f741be2c0bd6 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Sun, 21 Jun 2026 15:27:27 -0400 Subject: [PATCH 1/5] Add launch-day post announcing Open and Async Announces the book's July 21, 2026 release. Gated behind published: false so it won't surface early (no future-date guard in the post list); flip to true on launch day. OG image points at the book site's purpose-built social card. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../posts/2026-07-21-open-and-async.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/content/posts/2026-07-21-open-and-async.md diff --git a/src/content/posts/2026-07-21-open-and-async.md b/src/content/posts/2026-07-21-open-and-async.md new file mode 100644 index 000000000..84fdaa3d1 --- /dev/null +++ b/src/content/posts/2026-07-21-open-and-async.md @@ -0,0 +1,46 @@ +--- +title: "My book, Open and Async, is out today" +description: "After more than a decade of remote-first lessons from GitHub, my book—Open and Async—is finally here. It's the practical playbook for making distributed work actually work." +tldr: "Open and Async is out today. It's the opinionated, practical playbook for the two habits that make distributed teams actually work—working in the open and communicating asynchronously. Drawn from a decade-plus at GitHub. Get it at open-and-async.com." +image: "https://open-and-async.com/og-image.png" +# Launch safeguard: there's no future-date guard in the post list, so this +# post would surface a month early on any rebuild. Flip to true on July 21. +published: false +--- + +Most companies didn't go remote. They shipped everyone a laptop, bolted Zoom onto the same approval chains, and called it a day. That wasn't remote work—it was [office work in sweatpants](https://open-and-async.com): the same meetings, the same status theater, the same "quick syncs," just piped through a webcam. + +**Working from home ≠ working remotely.** There's a world of difference between being forced out of the office and intentionally building a distributed, async culture. My book is about that difference, and as of today, you can [read it](https://open-and-async.com). + +[*Open and Async*](https://open-and-async.com) is the opinionated, practical playbook for the two practices that make distributed work actually work: **working in the open** and **communicating asynchronously**. Async is the operating system; remote is the hardware. It's how the next generation of tech leaders already think—and it's a learnable skill for everyone else. + +## Why I wrote it + +I spent more than a decade at GitHub—remote-first since before it was fashionable—watching what actually separated the teams that thrived from the ones that just survived. It was never the tooling. Companies would adopt our workflows wholesale, add issues and pull requests on top of a hierarchy-driven approval process, and wonder why nothing changed. Tools: right. Bottlenecks: intact. The result was Zoom fatigue plus all the old dysfunction, now faster. + +The teams that pulled ahead did something different. They gave every decision [a URL](/2015/11/12/why-urls/) so context survived reorgs and departures. They treated meetings as escalation, not default. They [worked loudly](/2022/02/16/leaders-show-their-work/) so impact was visible without anyone performing busyness. None of it was intuition—it was a set of repeatable practices. This book is those practices, written down. + +## Who it's for + +Two audiences, both in remote and distributed work: + +* **Managers**—build teams that ship without constant synchronous coordination, and retain your best people by respecting their time, focus, and intelligence. +* **Individual contributors**—become visible, effective, and promotable on the strength of your work, not the luck of your seating chart. Interviewing at a remote-first company? This is the playbook they wish you'd already read. + +## What's inside + +A few of the things you'll learn how to do: + +* Treat meetings as a point of escalation, not the default—and reclaim the hours you're losing to "quick syncs." +* Give every decision a URL so context survives reorgs, departures, and Slack purges. +* Run 1:1s, weekly reports, and career conversations that aren't a tax on everyone's time. +* Lead—whether or not you have direct reports—by showing your work. +* Hire, onboard, and transition teams to remote-first work without losing what made them good. + +It's 575 pages, and—because I [could not help myself](https://open-and-async.com)—the method ships as more than a manuscript. There's even an [MCP server](https://github.com/open-and-async/mcp) that drops the book's async-first practices straight into your editor, so an AI agent can draft a decision doc or pressure-test a status update against the same rubric the book teaches. + +## Get it + +[*Open and Async*](https://open-and-async.com) is available now—$9.99 for the ebook, $29.99 for the paperback—on Kindle, Apple Books, Kobo, and everywhere else. One link gets you to all of them: **[open-and-async.com](https://open-and-async.com)**. + +Stop digitizing the office. Start building something better. From 2980e448f92a4a326a193bb5da04634f6ad20896 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Sun, 21 Jun 2026 15:38:54 -0400 Subject: [PATCH 2/5] Tighten links and expand MCP per style-guide audit - Expand MCP to Model Context Protocol (MCP) on first use - Add a relevant internal link (why-async) on "communicating asynchronously" - Drop vague homepage links on "office work in sweatpants" and "could not help myself" so remaining anchors are descriptive Co-Authored-By: Claude Opus 4.8 (1M context) --- src/content/posts/2026-07-21-open-and-async.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/content/posts/2026-07-21-open-and-async.md b/src/content/posts/2026-07-21-open-and-async.md index 84fdaa3d1..e100f7ffc 100644 --- a/src/content/posts/2026-07-21-open-and-async.md +++ b/src/content/posts/2026-07-21-open-and-async.md @@ -8,11 +8,11 @@ image: "https://open-and-async.com/og-image.png" published: false --- -Most companies didn't go remote. They shipped everyone a laptop, bolted Zoom onto the same approval chains, and called it a day. That wasn't remote work—it was [office work in sweatpants](https://open-and-async.com): the same meetings, the same status theater, the same "quick syncs," just piped through a webcam. +Most companies didn't go remote. They shipped everyone a laptop, bolted Zoom onto the same approval chains, and called it a day. That wasn't remote work—it was office work in sweatpants: the same meetings, the same status theater, the same "quick syncs," just piped through a webcam. **Working from home ≠ working remotely.** There's a world of difference between being forced out of the office and intentionally building a distributed, async culture. My book is about that difference, and as of today, you can [read it](https://open-and-async.com). -[*Open and Async*](https://open-and-async.com) is the opinionated, practical playbook for the two practices that make distributed work actually work: **working in the open** and **communicating asynchronously**. Async is the operating system; remote is the hardware. It's how the next generation of tech leaders already think—and it's a learnable skill for everyone else. +[*Open and Async*](https://open-and-async.com) is the opinionated, practical playbook for the two practices that make distributed work actually work: **working in the open** and [**communicating asynchronously**](/2022/03/17/why-async/). Async is the operating system; remote is the hardware. It's how the next generation of tech leaders already think—and it's a learnable skill for everyone else. ## Why I wrote it @@ -37,7 +37,7 @@ A few of the things you'll learn how to do: * Lead—whether or not you have direct reports—by showing your work. * Hire, onboard, and transition teams to remote-first work without losing what made them good. -It's 575 pages, and—because I [could not help myself](https://open-and-async.com)—the method ships as more than a manuscript. There's even an [MCP server](https://github.com/open-and-async/mcp) that drops the book's async-first practices straight into your editor, so an AI agent can draft a decision doc or pressure-test a status update against the same rubric the book teaches. +It's 575 pages, and—because I could not help myself—the method ships as more than a manuscript. There's even a [Model Context Protocol (MCP) server](https://github.com/open-and-async/mcp) that drops the book's async-first practices straight into your editor, so an AI agent can draft a decision doc or pressure-test a status update against the same rubric the book teaches. ## Get it From 998b2ede8afe43dccbca5ecd9dce4d83dc8c2dea Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Sun, 21 Jun 2026 15:46:07 -0400 Subject: [PATCH 3/5] Make the launch post reader-centered, not author-centered Per "write for users, not for yourself": retitle so it leads with the reader's payoff instead of "My book," reframe the "Why I wrote it" section as "What separates teams that thrive," and cut first-person asides ("I spent," "our workflows," "because I could not help myself") in favor of what the reader gains. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/content/posts/2026-07-21-open-and-async.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/content/posts/2026-07-21-open-and-async.md b/src/content/posts/2026-07-21-open-and-async.md index e100f7ffc..08a9911c3 100644 --- a/src/content/posts/2026-07-21-open-and-async.md +++ b/src/content/posts/2026-07-21-open-and-async.md @@ -1,6 +1,6 @@ --- -title: "My book, Open and Async, is out today" -description: "After more than a decade of remote-first lessons from GitHub, my book—Open and Async—is finally here. It's the practical playbook for making distributed work actually work." +title: "Open and Async: the remote-work playbook is out today" +description: "Open and Async is the practical playbook for making remote and distributed work actually work—two habits, working in the open and communicating asynchronously, drawn from a decade of remote-first lessons at GitHub." tldr: "Open and Async is out today. It's the opinionated, practical playbook for the two habits that make distributed teams actually work—working in the open and communicating asynchronously. Drawn from a decade-plus at GitHub. Get it at open-and-async.com." image: "https://open-and-async.com/og-image.png" # Launch safeguard: there's no future-date guard in the post list, so this @@ -10,15 +10,15 @@ published: false Most companies didn't go remote. They shipped everyone a laptop, bolted Zoom onto the same approval chains, and called it a day. That wasn't remote work—it was office work in sweatpants: the same meetings, the same status theater, the same "quick syncs," just piped through a webcam. -**Working from home ≠ working remotely.** There's a world of difference between being forced out of the office and intentionally building a distributed, async culture. My book is about that difference, and as of today, you can [read it](https://open-and-async.com). +**Working from home ≠ working remotely.** There's a world of difference between being forced out of the office and intentionally building a distributed, async culture. That difference is what *Open and Async* is about—and as of today, you can [read it](https://open-and-async.com). [*Open and Async*](https://open-and-async.com) is the opinionated, practical playbook for the two practices that make distributed work actually work: **working in the open** and [**communicating asynchronously**](/2022/03/17/why-async/). Async is the operating system; remote is the hardware. It's how the next generation of tech leaders already think—and it's a learnable skill for everyone else. -## Why I wrote it +## What separates teams that thrive -I spent more than a decade at GitHub—remote-first since before it was fashionable—watching what actually separated the teams that thrived from the ones that just survived. It was never the tooling. Companies would adopt our workflows wholesale, add issues and pull requests on top of a hierarchy-driven approval process, and wonder why nothing changed. Tools: right. Bottlenecks: intact. The result was Zoom fatigue plus all the old dysfunction, now faster. +More than a decade of remote-first work at GitHub made one thing clear: the tooling was never what separated the teams that thrived from the ones that just survived. Companies would adopt those workflows wholesale—add issues and pull requests on top of a hierarchy-driven approval process—and wonder why nothing changed. Tools: right. Bottlenecks: intact. The result was Zoom fatigue plus all the old dysfunction, now faster. -The teams that pulled ahead did something different. They gave every decision [a URL](/2015/11/12/why-urls/) so context survived reorgs and departures. They treated meetings as escalation, not default. They [worked loudly](/2022/02/16/leaders-show-their-work/) so impact was visible without anyone performing busyness. None of it was intuition—it was a set of repeatable practices. This book is those practices, written down. +The teams that pulled ahead did something different. They gave every decision [a URL](/2015/11/12/why-urls/) so context survived reorgs and departures. They treated meetings as escalation, not default. They [worked loudly](/2022/02/16/leaders-show-their-work/) so impact was visible without anyone performing busyness. None of it was intuition—it was a set of repeatable practices, and *Open and Async* is those practices, written down so you can put them to work. ## Who it's for @@ -37,7 +37,7 @@ A few of the things you'll learn how to do: * Lead—whether or not you have direct reports—by showing your work. * Hire, onboard, and transition teams to remote-first work without losing what made them good. -It's 575 pages, and—because I could not help myself—the method ships as more than a manuscript. There's even a [Model Context Protocol (MCP) server](https://github.com/open-and-async/mcp) that drops the book's async-first practices straight into your editor, so an AI agent can draft a decision doc or pressure-test a status update against the same rubric the book teaches. +It's 575 pages, and the method ships as more than a manuscript. There's even a [Model Context Protocol (MCP) server](https://github.com/open-and-async/mcp) that drops the book's async-first practices straight into your editor, so an AI agent can draft a decision doc or pressure-test a status update against the same rubric the book teaches. ## Get it From b31badd9e8d74b3d71725e6750c1543a85b422c7 Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Sun, 21 Jun 2026 15:47:41 -0400 Subject: [PATCH 4/5] Add blog-reader hook tying the blog to the book The book grew out of this blog, so give blog readers a direct reason to pick it up: the familiar posts, woven into one ordered playbook, plus the two-thirds that never ran here. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/content/posts/2026-07-21-open-and-async.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/content/posts/2026-07-21-open-and-async.md b/src/content/posts/2026-07-21-open-and-async.md index 08a9911c3..f13a8d1a7 100644 --- a/src/content/posts/2026-07-21-open-and-async.md +++ b/src/content/posts/2026-07-21-open-and-async.md @@ -14,6 +14,8 @@ Most companies didn't go remote. They shipped everyone a laptop, bolted Zoom ont [*Open and Async*](https://open-and-async.com) is the opinionated, practical playbook for the two practices that make distributed work actually work: **working in the open** and [**communicating asynchronously**](/2022/03/17/why-async/). Async is the operating system; remote is the hardware. It's how the next generation of tech leaders already think—and it's a learnable skill for everyone else. +If you've spent any time on this blog, the argument will feel familiar—the book grew out of these posts. It's where the scattered pieces finally become one ordered playbook: the full case, start to finish, with the connective tissue no single post ever had room for. Everything you've read here, plus the two-thirds that never made it to the blog. + ## What separates teams that thrive More than a decade of remote-first work at GitHub made one thing clear: the tooling was never what separated the teams that thrived from the ones that just survived. Companies would adopt those workflows wholesale—add issues and pull requests on top of a hierarchy-driven approval process—and wonder why nothing changed. Tools: right. Bottlenecks: intact. The result was Zoom fatigue plus all the old dysfunction, now faster. From f1699a93243219d055fd1bc5f83f43945611155f Mon Sep 17 00:00:00 2001 From: Ben Balter Date: Sun, 21 Jun 2026 16:08:42 -0400 Subject: [PATCH 5/5] Flip book callouts to "buy now" and add bespoke launch CTA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that the book has launched, the site sells instead of capturing emails (gate on merge, no date flag): - BookCta (inline on every post + homepage featured): "Coming / Get notified" → "Out now / Buy it — $9.99" - New BookLaunchCta: a bespoke, high-impact buy-now panel (gradient ring, dual ebook/paperback buttons) for the launch post; auto-imported for MDX - Launch post → .mdx, embeds , drops the published:false safeguard, and sets hideBookCta to suppress the generic inline CTA - config: add bookPrice / bookPricePaperback as the single source Co-Authored-By: Claude Opus 4.8 (1M context) --- astro.config.mjs | 1 + src/components/BookCta.astro | 16 ++- src/components/BookLaunchCta.astro | 136 ++++++++++++++++++ src/config.ts | 5 +- src/content.config.ts | 3 +- ...async.md => 2026-07-21-open-and-async.mdx} | 12 +- src/layouts/PostLayout.astro | 4 +- src/pages/[year]/[month]/[day]/[slug].astro | 1 + 8 files changed, 161 insertions(+), 17 deletions(-) create mode 100644 src/components/BookLaunchCta.astro rename src/content/posts/{2026-07-21-open-and-async.md => 2026-07-21-open-and-async.mdx} (90%) diff --git a/astro.config.mjs b/astro.config.mjs index b757e56b7..34f3dac58 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -181,6 +181,7 @@ export default defineConfig({ './src/components/GitHubCulture.astro', './src/components/FossAtScale.astro', './src/components/YouTube.astro', + './src/components/BookLaunchCta.astro', // astro-embed components for zero-JS social embeds { 'astro-embed': ['Tweet', 'Vimeo', 'LinkPreview'], diff --git a/src/components/BookCta.astro b/src/components/BookCta.astro index 2ff3bbfa2..4d99f78e0 100644 --- a/src/components/BookCta.astro +++ b/src/components/BookCta.astro @@ -2,10 +2,12 @@ /** * Book CTA Component * - * Promotes the Open & Async book with a link to the book site. + * Promotes the Open & Async book with a buy link to the book site. * Supports two variants: inline (for posts) and featured (for homepage). * Both quote the marketing site (open-and-async.com): a dark-navy "book * object" anchored by the 3D cover mockup, with the lime→pink accent system. + * Now that the book has launched, both variants sell ("Buy it") rather than + * capture emails. For the dedicated launch announcement use BookLaunchCta. */ import { Image } from 'astro:assets'; @@ -63,17 +65,17 @@ const commitGraphPaths = `

- Coming {siteConfig.bookLaunch} + Out now

- {siteConfig.bookDescription}. Drawing on a decade at GitHub — sign up to get notified when it launches. + {siteConfig.bookDescription}. Drawing on a decade at GitHub — out now on Kindle, Apple Books, Kobo & more.

- Get notified + Buy it — {siteConfig.bookPrice}
@@ -94,10 +96,10 @@ const commitGraphPaths = ` />

- Coming {siteConfig.bookLaunch} + Out now

- Like this post? It's becoming a book. + Liked this post? It's now a book.

- Get notified when it launches + Buy Open & Async — {siteConfig.bookPrice}
diff --git a/src/components/BookLaunchCta.astro b/src/components/BookLaunchCta.astro new file mode 100644 index 000000000..0b907bacc --- /dev/null +++ b/src/components/BookLaunchCta.astro @@ -0,0 +1,136 @@ +--- +/** + * Book Launch CTA — the bespoke, high-impact "buy now" panel reserved for the + * launch announcement post. Louder than BookCta's inline/featured variants: a + * glowing lime→pink gradient ring around a full-width navy panel, the 3D cover, + * an oversized title, and dual buy buttons (ebook + paperback). Use BookCta for + * the everyday inline/homepage promos; use this once, on the launch post. + */ + +import { Image } from 'astro:assets'; +import { siteConfig } from '../config'; +import coverImage from '../../assets/img/open-and-async-cover.webp'; + +// Reuse the marketing site's gradient-ampersand treatment for the title. +const bookTitleHtml = siteConfig.bookTitle.replace( + /\s*&\s*/g, + '&', +); + +// Commit-graph motif (matches BookCta): faint branch graph along the bottom. +const commitGraphPaths = ` + + + + + + + +`; +--- + +
+ +
+
+ + +
+ +
+ Open & Async by Ben Balter — book cover +
+ + +
+

+ + Out now · {siteConfig.bookLaunch} + +

+ +

+ +

+ +

+ {siteConfig.bookDescription}. +

+ + + +

+ One link, every store — Kindle, Apple Books, Kobo & more. +

+
+
+
+
+
+ + diff --git a/src/config.ts b/src/config.ts index 59c352802..3739c9143 100644 --- a/src/config.ts +++ b/src/config.ts @@ -65,11 +65,14 @@ export const siteConfig = { // Find this in your Kit dashboard under Forms → form embed code. kitFormId: '9381290', - // Book + // Book — now launched, so the callouts sell ("buy now") rather than capture + // emails. bookPrice leads the CTAs; paperback is the secondary option. bookUrl: 'https://open-and-async.com/', bookTitle: 'Open & Async', bookDescription: 'The collaborative software development playbook for remote and distributed teams', bookLaunch: 'July 21, 2026', + bookPrice: '$9.99', + bookPricePaperback: '$29.99', // About page metadata aboutDescription: 'Ben Balter is a writer, open source developer, and attorney whose open source projects have hundreds of millions of downloads. Formerly Director of Hubber Enablement at GitHub.', diff --git a/src/content.config.ts b/src/content.config.ts index 067beb649..29596a803 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -55,7 +55,8 @@ const postsCollection = defineCollection({ // Post metadata image: z.string().optional(), // Open Graph image - + hideBookCta: z.boolean().default(false), // Suppress the auto-appended BookCta (e.g. the launch post supplies its own BookLaunchCta) + // SEO metadata sitemap: z.boolean().default(true), // Include in sitemap by default robots: z.string().optional(), // Robots meta tag diff --git a/src/content/posts/2026-07-21-open-and-async.md b/src/content/posts/2026-07-21-open-and-async.mdx similarity index 90% rename from src/content/posts/2026-07-21-open-and-async.md rename to src/content/posts/2026-07-21-open-and-async.mdx index f13a8d1a7..30ffebd68 100644 --- a/src/content/posts/2026-07-21-open-and-async.md +++ b/src/content/posts/2026-07-21-open-and-async.mdx @@ -3,9 +3,9 @@ title: "Open and Async: the remote-work playbook is out today" description: "Open and Async is the practical playbook for making remote and distributed work actually work—two habits, working in the open and communicating asynchronously, drawn from a decade of remote-first lessons at GitHub." tldr: "Open and Async is out today. It's the opinionated, practical playbook for the two habits that make distributed teams actually work—working in the open and communicating asynchronously. Drawn from a decade-plus at GitHub. Get it at open-and-async.com." image: "https://open-and-async.com/og-image.png" -# Launch safeguard: there's no future-date guard in the post list, so this -# post would surface a month early on any rebuild. Flip to true on July 21. -published: false +# This post supplies its own BookLaunchCta, so suppress the generic one that +# PostLayout appends to every post (avoids two buy-now CTAs back to back). +hideBookCta: true --- Most companies didn't go remote. They shipped everyone a laptop, bolted Zoom onto the same approval chains, and called it a day. That wasn't remote work—it was office work in sweatpants: the same meetings, the same status theater, the same "quick syncs," just piped through a webcam. @@ -41,8 +41,6 @@ A few of the things you'll learn how to do: It's 575 pages, and the method ships as more than a manuscript. There's even a [Model Context Protocol (MCP) server](https://github.com/open-and-async/mcp) that drops the book's async-first practices straight into your editor, so an AI agent can draft a decision doc or pressure-test a status update against the same rubric the book teaches. -## Get it - -[*Open and Async*](https://open-and-async.com) is available now—$9.99 for the ebook, $29.99 for the paperback—on Kindle, Apple Books, Kobo, and everywhere else. One link gets you to all of them: **[open-and-async.com](https://open-and-async.com)**. - Stop digitizing the office. Start building something better. + + diff --git a/src/layouts/PostLayout.astro b/src/layouts/PostLayout.astro index c754c6e85..03622e5b3 100644 --- a/src/layouts/PostLayout.astro +++ b/src/layouts/PostLayout.astro @@ -42,6 +42,7 @@ interface Props { prevPost?: { title: string; url: string; readingTime?: number } | undefined; nextPost?: { title: string; url: string; readingTime?: number } | undefined; archived?: boolean; + hideBookCta?: boolean; postId: string; postFilePath?: string | undefined; posts?: Record | string[] | undefined; @@ -60,6 +61,7 @@ const { prevPost, nextPost, archived = false, + hideBookCta = false, postId, postFilePath, posts: curatedPosts, @@ -149,7 +151,7 @@ const blogPostingSchema = pubDate ? generateBlogPostingSchema({ - + {!hideBookCta && } diff --git a/src/pages/[year]/[month]/[day]/[slug].astro b/src/pages/[year]/[month]/[day]/[slug].astro index bb5fcbbea..ec5c8d2bc 100644 --- a/src/pages/[year]/[month]/[day]/[slug].astro +++ b/src/pages/[year]/[month]/[day]/[slug].astro @@ -72,6 +72,7 @@ const nextPost = nextEntry ? { title: nextEntry.data.title, url: getPostUrl(next prevPost={prevPost} nextPost={nextPost} archived={post.data.archived} + hideBookCta={post.data.hideBookCta} postId={post.id} postFilePath={post.filePath} posts={post.data.posts}