Skip to content

Docs: improve approachability, discoverability, and content depth#39

Merged
ankurs merged 15 commits intomainfrom
fix/getting-started-navigation
Mar 24, 2026
Merged

Docs: improve approachability, discoverability, and content depth#39
ankurs merged 15 commits intomainfrom
fix/getting-started-navigation

Conversation

@ankurs
Copy link
Copy Markdown
Member

@ankurs ankurs commented Mar 24, 2026

Summary

Comprehensive docs overhaul to make ColdBrew more approachable and discoverable.

Navigation & onboarding

  • Quickstart page now owns /getting-started — home page "Get Started" button lands on the right page
  • Cookiecutter page demoted to /cookiecutter-reference (nav_order 10) with redirect note
  • Added "Alternative: Manual Setup (No Cookiecutter)" section with go mod init + minimal main.go
  • Updated 8 cross-references across howto/ and integrations.md

New pages

  • Configuration Reference — all 40+ env vars organized by category with types, defaults, and examples
  • Production Deployment guide — K8s manifests, health probes, Prometheus ServiceMonitor + alerts, gRPC load balancing, TLS, graceful shutdown tuning, production checklist
  • VTProtobuf guide — custom gRPC codec, three-level fallback chain, buf code generation setup, VT features (clone, equal, pool), when to disable

Expanded guides

  • Debugging — Delve debugger, gRPC debug env vars, interceptor chain inspection, common error patterns
  • data-builder — graph visualization, error handling, testing with Replace, common pitfalls

Kubernetes & 12-factor messaging

  • Updated home page tagline to "Kubernetes-native" + "12-factor"
  • Added "Kubernetes-native" and "Fast Serialization" rows to home page feature table
  • Added "Design Principles" section to architecture page with 12-factor alignment table
  • Added FAQ entries: "Is ColdBrew designed for Kubernetes?" and "What is vtprotobuf?"

SEO & discoverability

  • Added/improved meta descriptions on 7 pages
  • Added vtprotobuf to home page DRY section, integrations page, and FAQ
  • Updated USING.md config table to match actual defaults and link to full config reference

Test plan

  • bundle exec jekyll serve — verify navigation order and all links resolve
  • Home page "Get Started" button → /getting-started (quickstart page)
  • All [ColdBrew cookiecutter] links → /cookiecutter-reference
  • New pages render: /config-reference, /howto/production, /howto/vtproto
  • Architecture page shows "Design Principles" section with 12-factor table
  • Run Playwright link validation tests

Summary by CodeRabbit

  • Documentation
    • Renamed "Quickstart" → "Getting Started" and "Cookiecutter Setup" → "Cookiecutter Reference"; updated navigation and links
    • Added Production (Kubernetes), Debugging, vtprotobuf, Configuration Reference, and Debugging guides
    • Expanded FAQ, homepage, and many how‑to pages (APIs, tracing, logging, gRPC, interceptors, swagger, tracing, data‑builder)
    • Updated env var defaults and cross‑reference links across docs

The home page "Get Started" button linked to /getting-started which
resolved to the Cookiecutter reference page, not the actual quickstart
guide. Now quickstart.md owns /getting-started (nav_order 2) and
Cookiecutter.md is demoted to /cookiecutter-reference (nav_order 10).

Also adds a manual setup section (no cookiecutter) to the Getting
Started page and updates all 8 cross-references across howto pages
and integrations.md to point to the new cookiecutter-reference URL.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 24, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR reorganizes and expands site documentation: renames Cookiecutter and Quickstart pages (and permalinks), adds a Getting Started manual setup, introduces multiple new how‑to/reference pages (config-reference, production, debugging, vtprotobuf, data‑builder), adds vtprotobuf and Kubernetes content, and updates front‑matter and internal links across many docs.

Changes

Cohort / File(s) Summary
Cookiecutter reference
Cookiecutter.md
Renamed page and front‑matter (title, nav_order, description, permalink), updated heading, and added a note redirecting first‑time users to Getting Started.
Getting Started / Quickstart
quickstart.md
Renamed to "Getting Started", updated front‑matter/permalink, added note about missing Greet implementation after generate, and added "Alternative: Manual Setup (No Cookiecutter)" walkthrough.
How‑to pages (links & metadata)
howto/APIs.md, howto/Log.md, howto/Tracing.md, howto/gRPC.md, howto/interceptors.md, howto/signals.md, howto/swagger.md, howto/index.md
Updated [ColdBrew cookiecutter] link targets to /cookiecutter-reference (with anchors) and added/updated description front‑matter on several pages.
Integrations & homepage
integrations.md, Index.md
Added vtprotobuf integration section and reference links; updated feature list on homepage (Kubernetes-native, vtprotobuf, swagger, pprof, grpc reflection, automaxprocs).
vtprotobuf how‑to
howto/vtproto.md
New page documenting vtprotobuf codec registration, three‑level marshal/unmarshal fallback, generation instructions, generated VT methods, disable flag (DISABLE_VT_PROTOBUF), and usage examples.
Configuration reference
config-reference.md
New comprehensive env‑var reference (grouped by subsystem, ~40+ vars), accessor snippet, examples, precedence rules for OTLP/New Relic, and link to core/config/config.go.
Production / Kubernetes guide
howto/production.md
New production deployment guide with multi‑stage Dockerfile, Kubernetes manifests (Deployment, Service, Secret), probes, TLS and shutdown tuning, Prometheus/ServiceMonitor examples, and checklist.
Debugging guide
howto/Debugging.md
New Delve debugging section, gRPC debug env var guidance, interceptor chain inspection, execution order, common error diagnostics and checks.
Data‑builder docs
howto/data-builder.md
Added BuildGraph visualization, runtime error behavior, compile‑time validation rules, testing guidance (Replace/mocks), and common pitfalls.
USING, FAQ, Packages
USING.md, FAQ.md, Packages.md
USING.md updated env var defaults and links to config reference; FAQ.md expanded with vtprotobuf, reflection, Kubernetes and other FAQs; Packages.md front‑matter description refined.
Misc docs small edits
howto/* (various), other markdown files
Multiple minor link and metadata tweaks across many docs to reflect renamed pages, anchors, new references, and added doc pages.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

🐰 I hopped through pages, tidy and bright,

Renamed the paths and led the light,
New guides and configs, vtproto in tow,
A burrow of docs where devs can grow,
Hop in, compile—then off we go!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly summarizes the main changes: improvements to documentation's approachability (simpler onboarding), discoverability (new guides, better SEO, cross-references), and content depth (expanded guides, new sections).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/getting-started-navigation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

…prove SEO

- Add comprehensive Configuration Reference page with all 40+ env vars
  organized by category (server, gRPC, TLS, Prometheus, OTLP, etc.)
- Add Production Deployment guide with K8s manifests, health probes,
  Prometheus ServiceMonitor, gRPC load balancing, graceful shutdown tuning
- Expand Debugging guide: Delve usage, gRPC debug env vars, interceptor
  chain inspection, common error patterns and solutions
- Expand data-builder guide: graph visualization, error handling, testing
  patterns with Replace, common pitfalls (cycles, missing inputs, types)
- Improve SEO meta descriptions on FAQ, Packages, howto index pages
- Update USING.md config table to match actual defaults and link to
  full config reference
@ankurs ankurs requested a review from Copilot March 24, 2026 05:54
@ankurs ankurs changed the title Fix Getting Started vs Quickstart navigation confusion Docs: improve approachability, discoverability, and content depth Mar 24, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
quickstart.md (1)

297-308: Consider adding a prerequisite reminder for buf in the manual setup section.

The manual setup section uses buf commands (lines 371-372) but doesn't mention that buf must be installed first. While buf is listed in the Prerequisites section at line 25, that section is contextually focused on the cookiecutter approach. Users jumping directly to "Alternative: Manual Setup" might miss this requirement.

📋 Suggested improvement
 ## Alternative: Manual Setup (No Cookiecutter)

 If you prefer to set up a project manually without cookiecutter, here's the minimal path:

+{: .note }
+You'll need **[buf](https://buf.build/docs/installation)** installed for protobuf code generation.
+
 ### 1. Initialize your module
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@quickstart.md` around lines 297 - 308, Add a short prerequisite note under
the "Alternative: Manual Setup (No Cookiecutter)" section reminding users to
install buf before running the buf commands referenced later; specifically,
update the Manual Setup section (the "Alternative: Manual Setup (No
Cookiecutter)" heading) to include a one-line reminder such as "Ensure buf is
installed (see prerequisites) or install via https://buf.build" so readers who
skip to manual setup see the requirement before the buf commands are used.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@quickstart.md`:
- Around line 391-413: The myService type is missing the required Stop() method
needed to satisfy the core.CBService interface; add a Stop() method on myService
(matching the signature expected by core.CBService) that performs any necessary
cleanup and returns an error (or nil) so the type implements InitGRPC, InitHTTP
and Stop; update the myService type to include Stop() (used when calling
cb.SetService(&myService{})) ensuring the method name and signature exactly
match the interface definition in core.CBService.

---

Nitpick comments:
In `@quickstart.md`:
- Around line 297-308: Add a short prerequisite note under the "Alternative:
Manual Setup (No Cookiecutter)" section reminding users to install buf before
running the buf commands referenced later; specifically, update the Manual Setup
section (the "Alternative: Manual Setup (No Cookiecutter)" heading) to include a
one-line reminder such as "Ensure buf is installed (see prerequisites) or
install via https://buf.build" so readers who skip to manual setup see the
requirement before the buf commands are used.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4e5e6e9b-32e0-4b6d-a9c5-5e6aa89c198f

📥 Commits

Reviewing files that changed from the base of the PR and between 19f388e and c89bcba.

📒 Files selected for processing (10)
  • Cookiecutter.md
  • howto/APIs.md
  • howto/Log.md
  • howto/Tracing.md
  • howto/gRPC.md
  • howto/interceptors.md
  • howto/signals.md
  • howto/swagger.md
  • integrations.md
  • quickstart.md

Comment thread quickstart.md
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reorganizes the docs “Getting Started” flow so the home page button and navigation land users on the intended first-run guide, while demoting the cookiecutter details into a separate reference page and updating cross-links accordingly.

Changes:

  • Renames/repurposes the Quickstart page as “Getting Started” and moves it to /getting-started, adding a manual setup alternative.
  • Moves the cookiecutter page to /cookiecutter-reference and updates references across how-to/integrations docs.
  • Adds new reference-style docs pages (Production Deployment, Configuration Reference) and enriches several page descriptions.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
quickstart.md Renamed to “Getting Started”, changed permalink to /getting-started, added manual setup path.
Cookiecutter.md Retitled/repositioned as “Cookiecutter Reference” at /cookiecutter-reference with guidance back to Getting Started.
integrations.md Updates [ColdBrew cookiecutter] reference to new cookiecutter-reference URL.
howto/APIs.md Updates cookiecutter reference link to new anchor URL.
howto/signals.md Updates cookiecutter reference link to new anchor URL.
howto/swagger.md Updates cookiecutter reference link to new URL.
howto/interceptors.md Updates cookiecutter reference link to new URL.
howto/gRPC.md Updates cookiecutter reference link to new URL.
howto/Tracing.md Adds description and updates cookiecutter reference link.
howto/Log.md Updates cookiecutter reference link.
howto/index.md Improves How To index description.
howto/data-builder.md Adds sections on graph visualization and testing guidance.
howto/Debugging.md Adds Delve + debugging guidance and troubleshooting patterns.
howto/production.md New production deployment guide (Kubernetes, probes, Prometheus, shutdown tuning, etc.).
config-reference.md New environment variable configuration reference page.
USING.md Aligns config variable names/defaults and links to new config reference page.
Packages.md Improves page description metadata.
FAQ.md Improves page description metadata.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread quickstart.md
Comment thread howto/production.md
Comment on lines +163 to +167
| Endpoint | Purpose | Kubernetes probe |
|----------|---------|------------------|
| `/healthcheck` | Liveness — is the process alive? | `livenessProbe` |
| `/readycheck` | Readiness — can it accept traffic? | `readinessProbe` |

Copy link

Copilot AI Mar 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Markdown table here starts with || ... instead of | ... |, which will render as an extra empty first column (or misrender) in most Markdown processors. Update the table rows to use single leading/trailing pipes so the table renders correctly.

Copilot uses AI. Check for mistakes.
Comment thread config-reference.md
Comment thread howto/Debugging.md Outdated
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
howto/production.md (1)

355-355: Align checklist wording with the shutdown formula used earlier.

Line 355 says “shutdown + healthcheck wait duration”, but earlier guidance uses SHUTDOWN_DURATION_IN_SECONDS + GRPC_GRACEFUL_DURATION_IN_SECONDS. Consider using the same terms here to avoid ambiguity.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@howto/production.md` at line 355, Update the checklist item to use the same
terminology as earlier by replacing “shutdown + healthcheck wait duration” with
the explicit formula `SHUTDOWN_DURATION_IN_SECONDS +
GRPC_GRACEFUL_DURATION_IN_SECONDS` so readers see the same variables used
previously and avoid ambiguity; reference the same constants shown earlier to
ensure consistency across the doc.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@howto/data-builder.md`:
- Around line 280-299: The test mutates a package-level Plan `p` via `Replace`,
which can leak state across tests; change the test to use a fresh local plan
instance (create a new Plan instead of using the package-level `p`) and call
`Replace` and `Run` on that local variable (e.g., use a local `p := NewPlan()`
or equivalent factory) so the `Replace` of `BuildPriceAdjustment` is isolated to
this test and cannot affect other tests; ensure all calls reference the local
`p` (for `Replace`, `Run`, and result handling).

In `@howto/production.md`:
- Line 367: Remove the unused markdown link reference "[Configuration
Reference]: /config-reference" from the document (or alternatively add a
corresponding in-body reference link that uses "[Configuration Reference]" so
the reference is actually referenced); locate the literal reference line
"[Configuration Reference]: /config-reference" in the file and either delete
that line or add an in-body link like "[Configuration Reference]" where it
should be used.

---

Nitpick comments:
In `@howto/production.md`:
- Line 355: Update the checklist item to use the same terminology as earlier by
replacing “shutdown + healthcheck wait duration” with the explicit formula
`SHUTDOWN_DURATION_IN_SECONDS + GRPC_GRACEFUL_DURATION_IN_SECONDS` so readers
see the same variables used previously and avoid ambiguity; reference the same
constants shown earlier to ensure consistency across the doc.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e44364af-69ba-410c-998d-42de40012fe6

📥 Commits

Reviewing files that changed from the base of the PR and between c89bcba and ca4956d.

📒 Files selected for processing (8)
  • FAQ.md
  • Packages.md
  • USING.md
  • config-reference.md
  • howto/Debugging.md
  • howto/data-builder.md
  • howto/index.md
  • howto/production.md
✅ Files skipped from review due to trivial changes (5)
  • Packages.md
  • howto/index.md
  • FAQ.md
  • config-reference.md
  • howto/Debugging.md

Comment thread howto/data-builder.md
Comment thread howto/production.md Outdated
ankurs added 4 commits March 24, 2026 14:01
- Add new howto/vtproto.md covering the custom gRPC codec, three-level
  fallback chain, buf code generation setup, VT features (clone, equal,
  pool), and when to disable
- Add "Fast Serialization" to home page feature table
- Add vtprotobuf section to integrations page with setup instructions
- Link config reference DISABLE_VT_PROTOBUF to the new howto page
- Add vtprotobuf to "Don't Repeat Yourself" integrations list on home page
- Add FAQ entry explaining vtproto vs standard protobuf with comparison
  table, performance characteristics, and link to howto guide
- Update home page tagline to mention Kubernetes-native and 12-factor
- Add "Kubernetes-native" row to home page feature table
- Add "Design Principles" section to architecture page with 12-factor
  alignment table mapping each principle to ColdBrew's implementation
- Add FAQ entry: "Is ColdBrew designed for Kubernetes?"
…ure table

- Add 5 zero-config features to "What You Get Out of the Box": Swagger/
  OpenAPI UI, pprof profiling, gRPC reflection, HTTP gzip compression,
  and GOMAXPROCS auto-tuning via automaxprocs
- Add FAQ entry: "How do I use grpcurl or Postman with my ColdBrew
  service?" with grpcurl examples and DISABLE_GRPC_REFLECTION reference
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
FAQ.md (2)

75-93: Qualify the vtprotobuf performance claim to avoid overpromising.

The “2–3x faster” statement on Line 77 is useful, but it should be explicitly labeled as workload-dependent (and ideally point to benchmark context) to avoid being interpreted as a guaranteed result.

Proposed wording tweak
-[vtprotobuf](https://github.com/planetscale/vtprotobuf) (by PlanetScale) generates optimized `MarshalVT()`/`UnmarshalVT()` methods for protobuf messages that are typically **2–3x faster** than standard `proto.Marshal()` with fewer allocations.
+[vtprotobuf](https://github.com/planetscale/vtprotobuf) (by PlanetScale) generates optimized `MarshalVT()`/`UnmarshalVT()` methods for protobuf messages that are often faster than standard `proto.Marshal()` with fewer allocations (exact gains are workload-dependent).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@FAQ.md` around lines 75 - 93, Update the performance claim in the FAQ
paragraph that states "2–3x faster" for vtprotobuf to qualify it as
workload-dependent and link or reference benchmark context; specifically edit
the sentence mentioning vtprotobuf performance so it reads something like
"typically ~2–3x faster in our benchmarks for certain workloads" and/or add a
parenthetical noting that results vary by message shape and workload and
pointing readers to a benchmark or the vtprotobuf README for details; ensure the
change targets the vtprotobuf description paragraph (the lines mentioning "2–3x
faster") so the claim is not presented as a guaranteed outcome.

134-150: Add a TLS grpcurl example next to plaintext commands.

The current examples are great for local dev, but adding one TLS-based invocation would prevent copy/paste confusion for production users where plaintext is disabled.

Suggested addition
 ```bash
 # List all services
 grpcurl -plaintext localhost:9090 list
@@
 # Call a method
 grpcurl -plaintext -d '{"msg": "hello"}' localhost:9090 mypackage.MyService/Echo
+
+# TLS example (production-like)
+grpcurl -cacert ca.pem api.example.com:443 list
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @FAQ.md around lines 134 - 150, Add a TLS-based grpcurl example to the "How
do I use grpcurl or Postman with my ColdBrew service?" FAQ section so users have
a production-ready invocation; keep the existing plaintext examples and append a
single TLS example line showing use of -cacert and host:port (e.g., "grpcurl
-cacert ca.pem api.example.com:443 list") and mention using the appropriate
server name and cert path, and update the surrounding text to note that TLS
examples are for production where plaintext is disabled.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @FAQ.md:

  • Around line 75-93: Update the performance claim in the FAQ paragraph that
    states "2–3x faster" for vtprotobuf to qualify it as workload-dependent and link
    or reference benchmark context; specifically edit the sentence mentioning
    vtprotobuf performance so it reads something like "typically ~2–3x faster in our
    benchmarks for certain workloads" and/or add a parenthetical noting that results
    vary by message shape and workload and pointing readers to a benchmark or the
    vtprotobuf README for details; ensure the change targets the vtprotobuf
    description paragraph (the lines mentioning "2–3x faster") so the claim is not
    presented as a guaranteed outcome.
  • Around line 134-150: Add a TLS-based grpcurl example to the "How do I use
    grpcurl or Postman with my ColdBrew service?" FAQ section so users have a
    production-ready invocation; keep the existing plaintext examples and append a
    single TLS example line showing use of -cacert and host:port (e.g., "grpcurl
    -cacert ca.pem api.example.com:443 list") and mention using the appropriate
    server name and cert path, and update the surrounding text to note that TLS
    examples are for production where plaintext is disabled.

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: defaults

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `bf3f4773-b045-49f7-ba53-67535c199868`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 360b2ef890f817e6c55f9d787556b7c49bd59d9c and de63bcf4da24cb2e8a25be0892ab7372afe0261b.

</details>

<details>
<summary>📒 Files selected for processing (3)</summary>

* `FAQ.md`
* `Index.md`
* `architecture.md`

</details>

<details>
<summary>✅ Files skipped from review due to trivial changes (2)</summary>

* architecture.md
* Index.md

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

ankurs added 5 commits March 24, 2026 14:59
- Add "Self-Documenting APIs" section with pipeline diagram showing how
  one proto file generates gRPC stubs, REST gateway, OpenAPI spec, and
  vtprotobuf via buf generate
- Add table mapping each output to its self-documenting endpoint
- Show proto annotation example with both HTTP and OpenAPI metadata
- Update home page feature row to mention Swagger docs
Replace the 30-line Go code block with a concise proto annotation
example that better showcases ColdBrew's "define once, get everything"
story. The full Go example is on the Getting Started page.
…ickstart, FAQ

- Home page: update "Define Once" closing line to highlight typed Go
  interfaces and compile-time enforcement
- Architecture: add "Type-Safe by Design" subsection with ASCII diagram
  showing proto → interface → compiler enforcement flow
- Quickstart: add note after make generate explaining why the compiler
  errors until you implement the new method
- FAQ: add "How does ColdBrew ensure API consistency?" entry covering
  compile-time enforcement, gateway sync, and OpenAPI generation
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
Index.md (1)

38-38: Link grpcui for consistency with other tool references.

grpcui is currently plain text while nearby tools are link-backed. Consider linking it to improve scanability and parity.

Suggested small doc tweak
-| **gRPC Reflection** | Server reflection enabled by default — works with [grpcurl], grpcui, and Postman |
+| **gRPC Reflection** | Server reflection enabled by default — works with [grpcurl], [grpcui], and Postman |
 [grpcurl]: https://github.com/fullstorydev/grpcurl
+[grpcui]: https://github.com/fullstorydev/grpcui
 [automaxprocs]: https://github.com/uber-go/automaxprocs
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Index.md` at line 38, The docs row for "gRPC Reflection" currently links
grpcurl and Postman but leaves grpcui as plain text; update that table cell (the
"gRPC Reflection" row) to make "grpcui" a hyperlink like the others by replacing
the plain text token grpcui with a markdown link to the grpcui project (e.g.,
[grpcui](https://github.com/fullstorydev/grpcui)) so all tools in that cell are
consistently link-backed.
FAQ.md (1)

102-102: Avoid absolute wording (“impossible”) in contract guarantees.

Consider softening this sentence to avoid overclaiming in edge cases (e.g., custom routes outside generated surfaces).

Suggested wording adjustment
-This means it's impossible to have a documented endpoint that doesn't exist, an undocumented endpoint that does exist, or an HTTP route that doesn't match the gRPC method signature.
+This makes it highly unlikely to have a documented endpoint that doesn't exist, an undocumented endpoint that does exist, or an HTTP route that drifts from the gRPC method signature within generated surfaces.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@FAQ.md` at line 102, The sentence in FAQ.md uses absolute language
("impossible") about contract guarantees; change it to a softened phrasing that
acknowledges edge cases (e.g., "generally ensures", "strongly discourages", or
"in normal usage, prevents") so it doesn't overclaim (e.g., replace "This means
it's impossible to have..." with "This generally ensures you won't have..." or
"This prevents, in normal usage, a documented endpoint that doesn't exist..."),
keeping the rest of the sentence about the proto file being the contract and the
compiler/gateway/docs enforcing it intact.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@FAQ.md`:
- Line 102: The sentence in FAQ.md uses absolute language ("impossible") about
contract guarantees; change it to a softened phrasing that acknowledges edge
cases (e.g., "generally ensures", "strongly discourages", or "in normal usage,
prevents") so it doesn't overclaim (e.g., replace "This means it's impossible to
have..." with "This generally ensures you won't have..." or "This prevents, in
normal usage, a documented endpoint that doesn't exist..."), keeping the rest of
the sentence about the proto file being the contract and the
compiler/gateway/docs enforcing it intact.

In `@Index.md`:
- Line 38: The docs row for "gRPC Reflection" currently links grpcurl and
Postman but leaves grpcui as plain text; update that table cell (the "gRPC
Reflection" row) to make "grpcui" a hyperlink like the others by replacing the
plain text token grpcui with a markdown link to the grpcui project (e.g.,
[grpcui](https://github.com/fullstorydev/grpcui)) so all tools in that cell are
consistently link-backed.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fa43ac64-718a-4df1-b754-7c3e808eccb0

📥 Commits

Reviewing files that changed from the base of the PR and between de63bcf and 116a6a1.

📒 Files selected for processing (4)
  • FAQ.md
  • Index.md
  • architecture.md
  • quickstart.md
✅ Files skipped from review due to trivial changes (1)
  • architecture.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • quickstart.md

ankurs added 3 commits March 24, 2026 15:32
…ields

- Architecture: expand Trace ID interceptor row to mention HTTP header
  and proto field extraction, propagation to logs and Sentry/Rollbar
- Tracing howto: add "Trace ID Propagation" section covering HTTP header
  mechanism (x-trace-id), proto field mechanism (GetTraceId/GetTraceID),
  destination table (logs, error reports, request context), and note
  clarifying separation from OpenTelemetry trace context
- FAQ: add "How does trace ID propagation work?" entry
- Replace /quickstart/ with /getting-started/ (permalink changed)
- Update /getting-started/ expected title to "Getting Started"
- Add /cookiecutter-reference/ and /config-reference/ to top-level pages
- Add /howto/vtproto/ and /howto/production/ to howto pages
- Make grpcui a hyperlink in the gRPC Reflection feature table row
- Soften "impossible" to "strongly prevents" in FAQ API consistency entry
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 22 out of 22 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread howto/data-builder.md
- Fix Delve port in Debugging guide: use 2345 (Delve default) instead
  of 9090 (gRPC port) to avoid conflicts
- Use fresh local plan in data-builder test example to avoid shared
  mutable state across tests
- Remove unused [Configuration Reference] link ref from production guide
@ankurs ankurs merged commit d4912c6 into main Mar 24, 2026
8 checks passed
@ankurs ankurs deleted the fix/getting-started-navigation branch March 24, 2026 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants