Skip to content

blog: Leaving Virtualization.framework behind - #30

Open
PeronGH wants to merge 6 commits into
masterfrom
blog/leaving-virtualization-framework-behind
Open

blog: Leaving Virtualization.framework behind#30
PeronGH wants to merge 6 commits into
masterfrom
blog/leaving-virtualization-framework-behind

Conversation

@PeronGH

@PeronGH PeronGH commented Jul 11, 2026

Copy link
Copy Markdown
Member

Adds the new engineering blog post explaining ArcBox's move from Apple's Virtualization.framework to a custom VMM on Hypervisor.framework, plus the UI fallback needed for posts without a bespoke cover image.

New content

  • content/blog/leaving-virtualization-framework-behind.mdx — the full post covering motivation, libkrun decision, rebuild effort, bug stories (vsock stall, ring wrap, use-after-free), benchmarks, and opt-in instructions.

Supporting changes

  • Remove featured: true from the previous launch post so the new post becomes the featured one.
  • Fall back to the generated OG card in the blog list when a featured post has no cover.
  • Restrict blur placeholders to images under /blog/cover/; pass generated/remote images through as-is.

Benchmarks

  • virtio-net single-flow: ~10 Gbps (VZ) → 22.7 Gbps (HV backend)
  • docker image ls after idle: 1.62 s → 38 ms

PeronGH added 6 commits July 9, 2026 20:08
Tells the story of moving ArcBox from Apple's Virtualization.framework
to a custom VMM on Hypervisor.framework: motivation, first-boot sprint,
representative bugs, benchmark numbers, and honest gaps.

Sets up the "Leaving Rosetta behind" post as the follow-up.
The SIGILL surfaced during FEX testing and was caused by our FEX binary
being built on an SVE-capable CI host, not by a macOS virtualization
layer bug. Belongs in the FEX post's build-target story, not here.
The "Try it" block invented `arcbox start`; the real CLI is `abctl`, and
the runtime needs `abctl docker enable` to point the Docker CLI at the
ArcBox socket. Switch the "what we left on the table" line from the
`ARCBOX_VM_BACKEND` env var (first-boot only) to `abctl system backend hv`
(the runtime command).
Drop the "four issues opened, Priority 1, Done" ticketing metaphor for
plain language, and replace the internal Linear project link with the
public GitHub repo so outside readers can actually follow the work.
…has no cover

The featured hero rendered featured.data.cover with a non-null
assertion, so any coverless newest post crashed the /blog prerender.
…on, tidy frontmatter

- The three-way review landed three days into the sprint, not two,
  and about half of its findings closed within days, not most.
- Note the iperf3 numbers are host-to-guest.
- Rename the CLI latency row to 'after idle' and mark the VZ cell
  as not measured instead of opaque.
- uname -m matches the shown output; uname -a prints a full line.
- Drop the 'featured' frontmatter field: it is not in the blog
  schema and nothing reads it.
Copilot AI review requested due to automatic review settings July 11, 2026 12:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@greptile-apps

greptile-apps Bot commented Jul 11, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds a new engineering blog post and updates the blog list image fallback.

  • Adds the Virtualization.framework migration blog post.
  • Removes the old launch post from featured status.
  • Uses generated OG images when a featured post has no cover.
  • Limits blur placeholders to /blog/cover/ images.

Confidence Score: 5/5

This looks safe to merge.

No blocking issues found in the changed code.

T-Rex T-Rex Logs

What T-Rex did

  • The build proof completed successfully, compiling TypeScript, performing static generation, and generating routes for the new post.
  • The UI proof shows the real blog list including the new post and its loaded generated OG thumbnail.
  • The OG proof confirms the generated OG image was fetched as a PNG with status 200, content type image/png, and expected size and signature.
  • The post proof shows the new blog post route rendered by the static export.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
content/blog/arcbox-desktop-launch.mdx Removes the old featured marker from the launch post.
content/blog/leaving-virtualization-framework-behind.mdx Adds the new published engineering blog post without a bespoke cover image.
src/app/(landing)/blog/(list)/layout.tsx Adds an OG-card fallback for featured posts without cover images.
src/app/(landing)/blog/components/blog-thumbnail.tsx Passes generated or remote images through and only uses static blur handling for /blog/cover/ assets.

Reviews (1): Last reviewed commit: "docs(blog): correct review timeline and ..." | Re-trigger Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants