BugMojoBugMojoBugMojo
Features
Pricing
Add to ChromeLog inGet started
BugMojoBugMojo

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

A product of Softech Infra.

Product

  • Features
  • Session replay
  • AI agents & MCP
  • Pricing
  • Browser extension
  • Get started
  • Log in

Solutions

  • Developers
  • QA teams
  • Product managers
  • Customer support
  • Agencies & freelancers
  • Startups

Resources

  • Help & guides
  • Blog
  • Free tools
  • Compare
  • Glossary
  • AI agent plugins
  • Changelog
  • npm packages
  • GitHub

Trust Center

  • Security
  • Compliance
  • SDK performance
  • DPA
  • Vulnerability disclosure
  • Subprocessors
  • Privacy

Company

  • About
  • Contact
  • 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, or 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✓No
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