Overview

5 Product intent: Reverse-engineer the PRD

This chapter shows how to recover a product’s true intent from source code instead of relying on implementation details or marketing copy. The core warning is that experts can become so fluent in the schema, routes, and tech stack that they stop seeing the user’s actual problem, while the code itself still records the product decisions the team really made. By asking the right AI prompts, you can reconstruct a product brief from the repository: the pain it solves, the one-sentence pitch, the competitive bet it makes, and the features or absences that reveal where the team is headed.

The chapter’s main technique is to translate code into product language. It encourages describing the problem as a concrete scene before it becomes a feature list, then compressing the product into an “It’s X, but Y” sentence that names both the familiar category and the key difference. It also frames every codebase as something built for a specific customer with a specific rival, whether that customer is a consumer, a business owner, a developer, or an enterprise buyer. That lens helps you spot where the intent is hidden in a web app, library, CLI, or data tool, and it makes positioning visible as the single trade-off competitors cannot easily copy.

Using Cal.com as the running example, the chapter shows how code reveals a strategy built around white-label embedding, developer-first integration, and counter-positioning against branded competitors. The repository suggests a business aimed not at solo schedulers but at companies that want scheduling to disappear inside their own products, even if that means giving up viral growth loops. The same method uncovers hidden bets like AI phone-calling for follow-up, and strategic omissions like refusing to build video calling or comments when those would pull the product away from its core focus. In short, the codebase functions like a product roadmap written in decisions, constraints, and deliberate sacrifices.

The single-page product story for Cal.com, generated from a prompt run against the source code, covering the pain scene, the variant sentence, a competitive analysis table, code-derived surprises, and deliberate absences.
The Curse of Knowledge: the engineer sees code that "checks if two date ranges overlap," while the user feels the relief of turning a mess of sticky notes and nine emails into a single click.
You open a web app, import a library, run a CLI, or pipe data through a tool. Each interface reveals the specific customer the codebase is built to win.
A vague pitch like "We transform the relationship between individuals and information" conveys nothing, while a concrete one-liner like "Calendly, but open-source and embeddable" lets you picture the product immediately.
An end-user (left) cares about the surface: a clean UI, a fast page, one-tap checkout. A developer (right) cares about the plumbing: a clean API, SDKs, and reliable webhooks. A product is built for whoever pays, so the part of the codebase with the most complexity reveals the true customer.
Cal.com and Calendly as two icebergs, each with a different product strategy. Cal.com has a small visible tip (a booking link) supported by a large, deep base of developer features: an embed system, a platform API, white-label branding, and an OAuth layer. Calendly's iceberg is the reverse: a large, branded surface with a much smaller platform underneath.
The four competitive moats, or reasons a rival can't catch up: switching costs (leaving costs too much), network effects (each new user adds value), brand (a trusted name), and counter-positioning (copying you would break the rival, just as matching a "free" price would drain an incumbent's revenue). Cal.com combines counter-positioning with switching costs, and the moats a product holds predict where it invests next.
The marketing pitch is "just a scheduling tool," but the code reveals three features the company doesn't advertise: an AI agent that phones customers to confirm meetings (the Agent model), routing logic that sends each booking to the right team member (the RoutingForm), and white-label theming that re-skins the app for each customer (the brandColor field). The real strategy is in the code, not the marketing copy.

Summary

  • The Curse of Knowledge makes it harder for senior engineers to see the product as a user does. The more fluent you are with code, the more you see the database schema instead of the user's problem, like their scheduling anxiety disappearing.
  • A feature list is an inventory of what a product does, not an explanation of why it exists. The user's pain provides the "why." Cal.com's real competition isn't Calendly; it's the four-day email chain that starts with "let me check my calendar."
  • A good product description passes Paul Graham's "reproduce-it" test: after reading one sentence, is someone closer to building a copy? "It's Calendly, but open-source infrastructure for embedding" passes the test. "A scheduling platform leveraging modern technologies" does not.
  • Counter-positioning means refusing to do something a larger rival can't afford to stop doing. By saying "no" to building a consumer brand, Cal.com can build a deep embedding system that Calendly can't copy without destroying its own viral growth model.
  • The code reveals a company's strategy long before the marketing team does. These bets are not in a roadmap; they are in the implementation. Cal.com has an unadvertised AI phone agent. Ghost treats blog posts and emails as the same database object. Plausible deletes your identifying data every 24 hours.

FAQ

Why does the codebase matter more than the README when reverse-engineering a product’s intent?The code is the most honest record of what the product actually does. A README or landing page can smooth over the truth, but the source shows the real bets the team made, the pain it solves, and the features it truly ships.
What is the “Curse of Knowledge” in the context of understanding a codebase?It’s the bias where deep familiarity with implementation makes the product itself hard to see. Engineers start noticing tables, workers, and routes instead of the user’s experience, which can make them misread why anyone buys the software.
What does it mean to describe the product as a “scene,” not a summary?A scene puts one specific person in one specific moment of frustration before the product existed. Instead of saying “scheduling is hard,” you describe something concrete like “nine emails later, the meeting still isn’t booked,” which reveals the real pain and competitor.
Why should you ask for an “It’s X, but Y” sentence?That format forces the AI to anchor the product to something familiar while isolating the one concrete difference that matters. It avoids vague tech-stack summaries and helps express the product’s real business bet in one clear line.
What makes a good one-sentence product definition?A good one-liner should be specific enough that a stranger could almost rebuild the product from it. It should name the familiar reference product and the key trade-off or difference, not just the category or the stack.
How do you find the ideal customer profile (ICP) from a repository?Look at who the product is built to win and where the complexity lives. If the code emphasizes APIs, SDKs, embeds, and webhooks, it likely targets developers; if it emphasizes UI polish and consumer flows, it likely targets end users.
What is competitive positioning in this chapter’s framework?Competitive positioning is the specific trade a product makes that rivals can’t easily copy without hurting their own business. It’s not a feature checklist; it’s the structural choice that gives the product a defensible advantage.
Why is Cal.com’s white-labeling strategy so important?Cal.com’s ability to hide its branding lets customers embed it inside their own products without exposing a third-party logo. That is a counter-positioning move: Calendly relies on branded footers for growth, while Cal.com gives that up in exchange for deeper embedding and switching costs.
What do hidden features in the code tell you about the roadmap?Unadvertised capabilities often reveal the company’s next bet. If the code quietly contains something like an AI calling agent, it suggests the team is exploring a new product direction long before marketing says so.
Why are deliberate absences in the code as important as shipped features?Missing features can show what the team has decided not to become. For example, if a scheduling product deliberately avoids building video conferencing, that suggests it wants to stay focused on scheduling and integrate with existing tools instead of competing with them.

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime
  • renews annually, pause or cancel renewal anytime
  • Crack Any Codebase with AI ebook for free
choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime
  • renews annually, pause or cancel renewal anytime
  • Crack Any Codebase with AI ebook for free