[CONTENT SPRINT] Crossplane to Pulumi: A Migration Map for Platform Teams#18963
[CONTENT SPRINT] Crossplane to Pulumi: A Migration Map for Platform Teams#18963sicarul wants to merge 1 commit into
Conversation
Docs review for PR #18963Solid, well-scoped piece. A few issues to address before publishing — most are small style/correctness fixes, and a couple are content-accuracy notes. Must-fix1. Broken indentation in the TypeScript example ( The closing 2. Ordered list style ( Per 3. Heading should be sentence case ( `## Side-by-side: Provisioning a database` — "Provisioning" isn't an independent clause, so it should be lowercase. Should-fix4. First mention of Crossplane is not hyperlinked ( Per the blog review criteria, "First mention of every tool, technology, or product must be hyperlinked." Link to https://www.crossplane.io/ on the first mention. 5. Outdated framing of Crossplane Compositions (
This overlooks Composition Functions, which have been stable since Crossplane v1.17 and allow imperative logic to be written in Go, Python, KCL, etc. The current sentence will read as inaccurate to readers familiar with current Crossplane. Consider acknowledging Composition Functions while noting they add a separate runtime/operational burden compared to Pulumi's language-native model. 6. Table mapping is imprecise (
A Crossplane `ProviderConfig` is more directly equivalent to a Pulumi Provider resource (e.g., `new aws.Provider("name", {...})`) than to "provider resource options" (which would be the `{ provider: p }` opts bag). Suggest splitting or relabeling. 7. Weak/generic conclusion + missing CTA ( The closing line ("Pulumi provides the tools you need to scale effectively") is vague and there's no `{{< blog/cta-button >}}` or specific next-step link. Migration posts should land readers on a concrete starting point — e.g., the pulumi import guide, component resources docs, or a Get Started link. 8. `super("pkg:index:PostgreSQLInstance", name, args, opts)` — passing user args as the third argument registers them as component inputs in state. The conventional pattern is `super("...", name, {}, opts)` unless you specifically want to surface inputs. Worth changing for the example to be canonical. Nits9. Title is 56 characters (under the 60-char limit). The flag can be removed. 10. Hedging language "often" appears four times in close succession (lines 22, 28, 32, 36). Tighten where possible — e.g., line 22's "often lead teams" can become "lead teams". 11. Unrelated `theme/stencil/yarn.lock` drops a `@types/uuid@^8.0.0` entry. Unrelated to this blog post — please confirm this isn't merge/rebase noise that should be reverted. Design / publishing readiness
Mention @claude if you'd like another pass after edits, or want me to draft the rewritten code block or table. |
Social Media Reviewcontent/blog/migrating-from-crossplane-to-pulumi/index.mdX — PASSLinkedIn — PASSBluesky — PASSSuggestions (advisory)These are stylistic notes — they don't block the post. X
Bluesky
Updated for commit |
|
Your site preview for commit 0bbc8f0 is ready! 🎉 http://www-testing-pulumi-docs-origin-pr-18963-0bbc8f09.s3-website.us-west-2.amazonaws.com |
Lighthouse Performance ReportCommit: 8e12900 | Metric definitions
|
8e12900 to
31dc152
Compare
31dc152 to
ae55300
Compare
|
@claude please review again. I rewrote this branch history to a single clean commit on current |
|
Claude finished @sicarul's task in 2m 0s —— View job Re-review for PR #18963Thanks for the rebase — diff is now cleanly scoped to the three blog files (no Several items from the prior review were addressed, but a few are still outstanding and a couple of new issues surfaced in the rewrite. Fixed since last review
Still outstanding from prior review1. Code block indentation is still broken ( new aws.rds.Instance(name, {
allocatedStorage: args.storageGB,
engine: "postgres",
instanceClass: "db.t3.micro",
}, { parent: this });The closing 2. Ordered lists still use sequential numbering ( Per 3. Heading should be sentence case (
4. Table mapping is still imprecise (
5. super("pkg:index:PostgreSQLInstance", name, args, opts);Passing user args here registers them as component inputs in state. Canonical pattern is 6. Conclusion has a link but no The closing inline link to Pulumi import is a step up, but blog conventions call for a 7. "often" still appears three times ( Some tightening is still possible — e.g., line 30's "often lead teams" → "lead teams", line 36's "often starts when teams" → "starts when teams". New issues introduced in the rewrite8. Broken sentence in the conclusion (
The "Whether..." clause never resolves — it's spliced with a comma into a new imperative sentence ("Next, pick one..."). Reads like an edit collision. Suggest splitting: 9. Two different URLs for the same
Both resolve, but it's inconsistent within a single post. Use the canonical path in both places. 10. Awkward "functions and composition functions" phrasing (
The repeated "functions" is rough, and "Patch and Transform" should probably be lowercase in prose ("patch-and-transform"). Consider:
This more directly responds to the prior feedback about Composition Functions. Nits11. Design / publishing readiness
Ping me again once you've taken another pass. |
|
@claude please review again. Branch history is now a single clean commit on current origin/master. The PR diff contains only content/blog/migrating-from-crossplane-to-pulumi/index.md plus feature.png and meta.png. Social-review is passing, and actionable content feedback has been addressed. |
|
Claude finished @sicarul's task in 1m 32s —— View job Re-review for PR #18963Thanks for the rebase — the diff is cleanly scoped to the three blog files and the branch history is a single clean commit. ✅ However, I want to flag that the still-outstanding content issues from my previous re-review have not actually been addressed in the file — the rebase preserved the prior file state, so nothing in Still outstanding from prior re-review1. Code block indentation is broken ( new aws.rds.Instance(name, {
allocatedStorage: args.storageGB,
engine: "postgres",
instanceClass: "db.t3.micro",
}, { parent: this });The closing 2. Ordered lists still use sequential numbering ( Per 3. Heading should be sentence case (
4. Table mapping is still imprecise (
5. super("pkg:index:PostgreSQLInstance", name, args, opts);Passing user args here registers them as component inputs in state. Canonical pattern is 6. Conclusion still has no Migration posts should land readers on a concrete starting point via a CTA button, not just an inline link. 7. "often" still appears three times ( Tighten — e.g., line 30 "often lead teams" → "lead teams"; line 36 "often starts when teams" → "starts when teams". 8. Broken sentence in the conclusion (
The "Whether..." clause never resolves — it's spliced into a new imperative sentence with a comma. Reads like an edit collision. Suggested rewrite: 9. Two different URLs for the same
Use the canonical path in both places. 10. Awkward "functions and composition functions" phrasing (
The repeated "functions" is rough. Suggest:
Nits11. Design / publishing readiness
The rebase didn't carry forward the content fixes from the previous review pass — the file content is identical to what was reviewed before. Items 1, 3, 8, 9 are the highest-priority fixes (broken indentation, broken sentence, broken capitalization, inconsistent URL). Want me to take a pass and push the fixes directly? Just say the word. |
|
@claude please review again. This request is after the latest pushed head commit |
|
Claude finished @sicarul's task in 52s —— View job Re-review for PR #18963Confirmed: branch is a single clean commit ( However, Still outstanding1. Code block indentation is broken ( new aws.rds.Instance(name, {
allocatedStorage: args.storageGB,
engine: "postgres",
instanceClass: "db.t3.micro",
}, { parent: this });The closing 2. Ordered lists still use sequential numbering ( Per 3. Heading should be sentence case (
4. Table mapping is still imprecise (
5. super("pkg:index:PostgreSQLInstance", name, args, opts);Passing user args here registers them as component inputs in state. Canonical pattern is 6. Conclusion still has no Migration posts should land readers on a concrete starting point via a CTA shortcode, not only an inline link. 7. "often" still appears three times ( Tighten — e.g., line 30 "often lead teams" → "lead teams"; line 36 "often starts when teams" → "starts when teams". 8. Broken sentence in the conclusion (
The "Whether..." clause never resolves — it's spliced into a new imperative sentence with a comma. Reads like an edit collision. 9. Two different URLs for the same
Use the canonical path in both places. 10. Awkward phrasing — "functions and composition functions" (
The repeated "functions" is rough. Suggested rewrite:
Nits11. Design / publishing readiness
The branch hygiene is now clean, but the content fixes from the previous two reviews still need to be applied to Want me to push the fixes directly to this branch? Just say the word and I'll handle items 1–10 in a single commit. |
|
@claude please review again. This PR is now marked as draft, the needs-design label has been removed, and the latest pushed head is |
|
Claude finished @sicarul's task in 1m 16s —— View job Re-review for PR #18963Confirmed: head is That removes the design-readiness blocker from the publishing checklist, but Still outstanding1. Code block indentation is broken ( new aws.rds.Instance(name, {
allocatedStorage: args.storageGB,
engine: "postgres",
instanceClass: "db.t3.micro",
}, { parent: this });The closing 2. Ordered lists still use sequential numbering ( Per 3. Heading should be sentence case (
4. Table mapping is still imprecise (
5. super("pkg:index:PostgreSQLInstance", name, args, opts);Passing user args here registers them as component inputs in state. Canonical pattern is 6. Conclusion still has no Migration posts should land readers on a concrete starting point via a CTA shortcode, not only an inline link. 7. "often" still appears three times ( Tighten — e.g., line 30 "often lead teams" → "lead teams"; line 36 "often starts when teams" → "starts when teams". 8. Broken sentence in the conclusion (
The "Whether..." clause never resolves — it's spliced into a new imperative sentence with a comma. Reads like an edit collision. 9. Two different URLs for the same
Use the canonical path in both places. 10. Awkward phrasing — "functions and composition functions" (
The repeated "functions" is rough. Suggested rewrite:
Nits11. Design / publishing readiness
Branch hygiene and design tracking are sorted. The content fixes from the previous three reviews still need to be applied to Want me to push the fixes directly to this branch? Just say the word and I'll handle items 1–10 in a single commit. |
ae55300 to
0bbc8f0
Compare
|
@claude please review the latest pushed changes, including the generated blog feature and meta images. |
|
Claude finished @sicarul's task in 2m 0s —— View job Re-review for PR #18963Confirmed: head is Images — newly regenerated, looks good
The placeholder concern from prior reviews is resolved by these regenerated assets. They read cleanly as final, on-brand artwork rather than placeholders, so the Content —
|
Why this content is interesting
What we took into account
Why it is useful to an end user
Design need
needs-designbecause the post needs a final meta image before publication.feature.pngandmeta.pngfiles are placeholders unless Design chooses to reuse or adapt them.Metadata
🤖 Generated with OpenCode