feat: add engineering blog with 4 posts adapted from the system primer - #15640
Open
claude[bot] wants to merge 4 commits into
Open
feat: add engineering blog with 4 posts adapted from the system primer#15640claude[bot] wants to merge 4 commits into
claude[bot] wants to merge 4 commits into
Conversation
Adds an MDX-backed engineering blog to apps/website (content collection + listing/detail pages), seeded with 4 posts adapted from the internal "Understand This System" Notion primer: CRDTs from scratch, the end-to-end agent architecture, the agent's tool surface (MCP vs comfy-cli), and how user feedback becomes a permanent eval test case.
🌐 Website E2ETip All tests passed.
🔗 Website PreviewWebsite Preview: https://comfy-website-preview-pr-15640.vercel.app This commit: https://website-frontend-jsefmfofs-comfyui.vercel.app Last updated: 2026-08-22T10:04:52Z for |
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## main #15640 +/- ##
=======================================
Coverage 79.39% 79.39%
=======================================
Files 2217 2219 +2
Lines 112188 112194 +6
Branches 35091 35092 +1
=======================================
+ Hits 89069 89074 +5
- Misses 22640 22641 +1
Partials 479 479
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Adds unit tests for postSlug, sortPostsByDateDesc, and toCardProps to close the codecov patch-coverage gap on the new utility file. Narrows toCardProps's parameter to Pick<EngineeringBlogPostEntry, 'id' | 'data'> (matching the existing customers.ts convention) so it's testable with a plain object instead of a full CollectionEntry mock.
…add diagrams Reframes all 4 posts around the novel decision and how it arose instead of describing full system state: cuts the CRDT post's from-scratch tutorial in favor of the wall-clock bug that motivated the stamp, moves the how-feedback post's job-ID incident to the top as the hook, and drops forward-looking "planned for later" framing from the architecture and CRDT posts per review feedback. Adds one inline-SVG diagram per post showing the actual mechanism (write path, stamp comparison, feedback loop, two doors), reused as a compact card thumbnail on the listing page via a new `heroDiagram` frontmatter field and a shared diagram registry. Fixes the engineering-blog index, which had leaked the internal primer's "Understand this system" title instead of its own. - Fixes #15640
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Christian Byrne · Slack thread
Summary
Adds an engineering blog to
apps/website, seeded with 4 posts adapted from the internal "Understand This System" Notion primer. Originally these were plain-English explainers of the whole system; per review feedback, they're now rewritten as blog posts — each one leads with the actual engineering problem and how the team arrived at the solution, cuts standard/textbook material and any "this part is still half-built" framing, and gets a diagram.What changed after review
Christian's feedback was: focus on novel decisions and how they arose, not full system state; cut standard/trivial explanation and temporary/incomplete framing; add diagrams and images, structure like real blog posts; fix the primer title leaking into the blog index; give posts images on the listing page.
crdts-from-scratch) — cut the from-scratch tutorial (building a G-Counter, a tombstoned set, from first principles) entirely. Reframed around the actual story: a wall-clock last-write-wins scheme would have let a fast laptop clock win every conflict, and the fix was a self-contained 3-part stamp (base_version/actor/op_id) instead. Also dropped the "logical clocks are the natural next step for a future version" roadmap hedge.comfy-agent-architecture-end-to-end) — kept the "one sentence per box" structure (it already read as a real post), but cut the "a future lightweight, locally-persisted engine is planned" line and rewrote the single-writer section to drop the "the door stays open for true multi-writer editing later" roadmap framing, focusing instead on the actual design insight (why single-writer is a routing choice, not a hidden dependency).how-user-feedback-becomes-a-test-case) — moved the strongest material (an agent that polled a job it never submitted, and confidently reported success) from buried mid-post to the opening hook, and tightened the test/eval/benchmark vocabulary section that used to lead.the-agents-hands-mcp-and-comfy-cli) — kept mostly as-is (it already led with a hook and a specific technical throughline), trimmed some edge-case detail, added a diagram.src/components/engineering-blog/diagrams/, styled with the site's existing color tokens (var(--color-primary-comfy-yellow)etc.) so they match the site's single dark theme (this site doesn't have a light/dark toggle — confirmed viasrc/styles/global.css, noprefers-color-scheme/data-themehandling exists here, so the diagrams just use the same tokens every other component on the site uses).variant="card"version, shown next to its post's title/description in the/engineering-bloglist (previously text-only). Added aheroDiagramfrontmatter field (engineering-blog.schema.ts) so the listing and the post body render the same diagram from one source of truth; a small registry (diagrams/registry.ts) maps the field to the component./engineering-blogrendered an<h1>of "Understand this system" — leftover from the internal primer's own title, not specific to this blog or any post. Replaced with "Engineering Blog", and updated the eyebrow label and meta description to match.engineeringBlog.ts/engineeringBlog.test.tsfor the newheroDiagramfield.Posts
crdts-from-scratchcomfy-agent-architecture-end-to-endhow-user-feedback-becomes-a-test-casethe-agents-hands-mcp-and-comfy-cliReview Focus
heroDiagramenum / registry approach is the right amount of structure for 4 posts, versus something simpler./engineering-blogshould get a nav/footer entry, and whetherzh-CNtranslations are wanted.Verification
pnpm --filter @comfyorg/website typecheck(astro check) — 0 errorspnpm --filter @comfyorg/website build(astro build) — builds cleanly, all 4 posts + listing page render, no duplicate SVG ids across the 4 cards on the index pagepnpm --filter @comfyorg/website test:unit— 50 test files / 494 tests passpnpm --filter @comfyorg/website validate:jsonld— passes across 617 pagespnpm knip— cleanoxfmt --check/eslinton the new non-MDX files — clean