BugMojoBugMojoBugMojo
FeaturesPricingBlogHelpAbout
Add to ChromeLog inGet started
BugMojoBugMojo

Bug reports that actually help fix bugs — capture, replay, share.

A product of Softech Infra.

Product

  • Features
  • Pricing
  • Browser extension
  • Get started
  • Log in

Resources

  • Help & guides
  • Blog
  • Compare
  • Glossary

Company

  • About
  • Contact
  • Security
  • Privacy
  • Terms
  • Sitemap
© 2026 BugMojo. All rights reserved.
AllGuidesEngineeringPlaybooksCompareGlossaryAlternativesBy roleBug tracking by framework
  1. Home
  2. Blog
  3. Bug tracking by framework
  4. Astro 5
Bug tracking by framework

Bug tracking for Astro — session replay, console + HAR (2026)

Astro bug-reporting guide for QA + dev teams: framework-specific gotchas, common bugs, and how to capture them with BugMojo session replay.

3 min read·JavaScript
A starry night sky symbolising Astro's ship-zero-JS philosophy

What Astro teams ship with BugMojo

Astro's pitch is "ship zero JavaScript by default" — but the bugs your team will hit are not in the static HTML, they're at the **island boundaries**. A `<MyButton client:visible />` hydrates only when scrolled into view; a `<MyForm client:load />` hydrates on every page. Picking the wrong directive turns a 0-KB page into a 200-KB page, or a fast page into a janky one.

A useful Astro bug report needs the page route (static, server, hybrid?), the island component name + client directive, and what the user saw before AND after hydration. BugMojo captures both halves — the server-rendered HTML and the client takeover — in the same replay.

This guide covers Astro island hydration gotchas, view transitions bugs (Astro's native router), and the recommended BugMojo capture workflow for Astro teams in 2026.

Astro gotchas

Framework-specific failure modes engineers actually ship through. Each is hard to spot in a screenshot and obvious in a session replay.

Client directives pick up the wrong framework

If your project has both `@astrojs/react` and `@astrojs/preact` integrated, mixing them in islands causes silent bundle bloat. Each framework ships its own runtime.

client:visible doesn't fire above the fold

A `client:visible` island that is already in the viewport on page load still uses IntersectionObserver, which fires after first paint. The result: a brief moment where the island appears static. Use `client:load` for above-the-fold interactive content.

View transitions break form re-renders

Astro's view transitions persist DOM across navigations. A `<form>` element that survives the transition retains its previous values — surprising users and breaking single-page-app expectations.

SSR mode requires choosing an adapter — without one, server endpoints 404

Astro's static mode (the default) ignores server endpoints. Add `output: "server"` or `output: "hybrid"` AND an adapter (Node, Vercel, Cloudflare, Netlify) — both are required.

Common Astro bugs

Real Astro bug patterns — the symptom you will see in a report and the fix that actually works.

Island state resets on navigation with view transitions

Symptom: A persistent header with a search input loses its value when navigating between pages.

Fix: Add `transition:persist` on the element AND on the framework wrapper. View transitions only persist marked elements.

astroastro
<SearchInput client:load transition:persist="search" />

Environment variables undefined in client islands

Symptom: `import.meta.env.MY_KEY` is undefined when called from a hydrated island.

Fix: Astro env vars are scoped by prefix — `PUBLIC_*` are exposed to client, everything else is server-only. Rename to `PUBLIC_MY_KEY`.

Markdown component imports work in .md but not in .mdx

Symptom: `import` at the top of an MDX file fails to resolve.

Fix: MDX in Astro requires `@astrojs/mdx` integration AND component imports must be inside the frontmatter, not at the top of the file body.

Setup

terminal
# Install BugMojo from the Chrome Web Store — works on every Astro adapter

BugMojo vs alternatives

The honest comparison — where BugMojo wins, and where another tool might serve you better.

FeatureBugMojoView source / browser DevTools
See the pre-hydration HTML the user got✅✅ view source
See the post-hydration DOM✅✅ DevTools
See the moment hydration happened✅ replay❌
Capture islands' client console errors✅✅ live only
Shareable replay link✅❌
MCP integration for AI coding agents✓—
Zero-setup Quick CaptureNo project, no SDKAccount / SDK required
The BugMojo column is highlighted. The closing rows are BugMojo’s core wedge: rrweb session replay, MCP for AI agents, console + network capture, and zero-setup Quick Capture.
Capture your next bug in 15 seconds

BugMojo records the DOM, console, and network — then ships a one-click ticket with the full replay attached. No SDK, no setup.

Try BugMojo free

Frequently asked questions

Frequently asked questions

Sources

  1. Astro client directives reference — docs.astro.build (2025)
Share:

More frameworks

Pick another — each guide has its own gotchas, comparison, and fixes.

React 19
JavaScript
Next.js 15
JavaScript
SvelteKit 2 (Svelte 5)
JavaScript
Vue 3.5
JavaScript
WordPress
PHP / CMS
Angular 19
TypeScript

On this page

  • What Astro teams ship with BugMojo
  • Astro gotchas
  • Common Astro bugs
  • Setup
  • BugMojo vs alternatives