Skip to content

Astro: fit test check and IMAGES verification on the edge and a box #312

Closed as not planned

Description

@QuinnsCode

One place for the open Astro work. This replaces #236, #273 and #274, which are now closed.

1. Fit test: Astro apps are ready (from #236)

Since #223 taught rustybuns init Astro, the fit check says ready for Astro workspaces. On main, apps/codesplitters/test/fit.test.ts already expects verdict: "ready" for the Astro app, so this looks done.

  • Confirmed on main (4528c13), 2026-10-10: bun test apps/codesplitters/test/fit.test.ts passes (6 pass, 0 fail), with the Astro app at verdict: "ready".

2. Verify the IMAGES binding on a live Cloudflare deploy (from #273)

#270 adds the images binding (#222). The tests cover the generated wrangler and Alchemy output, and /_image was checked on a desktop dev build. Nobody has deployed it to the edge yet.

  1. Make a fresh Astro 7 + @astrojs/cloudflare 14 app with an <Image> on a server-rendered page. Run rustybuns init and confirm IMAGES is in rustybuns.config.ts.
  2. Run rustybuns plan, then deploy.
  3. Request the page's /_image?href=…&w=32&f=webp URL. It should return a resized WebP, not the original PNG.
  4. Destroy the stack afterwards.

Cost: the Worker runs on the free plan, and Cloudflare Images gives 5,000 unique transformations a month for free.

  • Step 3 returns a transformed image, and the result is noted in FRAMEWORKS.md.

3. Verify the IMAGES passthrough on a box, Railway (from #274)

On desktop and the box, images is a passthrough: /_image returns the original image, and the host binds env.ASSETS and a no-op caches global. This was checked only on a desktop dev build.

  1. Take the same Astro sample app as in section 2 and add targets.box: { provider: "railway" }.
  2. Run rustybuns build box, then deploy to the railway-test project.
  3. Request /_image?href=…&w=32&f=webp. It should return 200 with the original PNG, byte-identical to dist/client/_astro/*.png.
  4. Tear down the service afterwards. railway-test itself stays.
  • Step 3 passes, and the result is noted in FRAMEWORKS.md.

Sections 2 and 3 can share one sample app.

🤖 Generated with Claude Code

Activity

  1. QuinnsCode commented on Oct 11, 2026

    @QuinnsCode
    OwnerAuthor

    Folded into #741, which bundles it with related work for one agent. The details here still apply.

    🤖 Generated with Claude Code

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions