#Questions about Astro Now
1 messages · Page 1 of 1 (latest)
Hi @strange plume. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
Short answer: Yes, Astro can build dynamic and interactive apps—but its sweet spot is content‑driven sites. You can add interactivity via “islands” (hydrated framework components like React, Svelte, Vue, etc.) and choose exactly when they load using client directives, keeping most of the page as fast, static HTML (Hydrating interactive components; Client Directives). This “opt in to complexity” model lets you mix multiple frameworks and only ship JS where needed, preserving performance (Island components; UI-agnostic; Easy to use).
Drawbacks/tradeoffs:
- Heavily app‑like experiences (large shared client state, many always‑interactive views) may require more hydration and thus more client JS, reducing Astro’s “zero JS by default” advantage. Astro is server‑first and MPA‑oriented; SPAs are not its primary target (Design Principles; Server-first).
- Some patterns are restricted: hydration directives can’t be used with dynamic tags, and only serializable props can be passed to hydrated components (Dynamic Tags; Passing props to framework components).
Bottom line: Astro is excellent for dynamic, interactive islands within content‑focused sites, delivering strong performance by default. For fully SPA‑style apps needing pervasive client-side interactivity, you can still build them, but you’ll give up some of Astro’s core performance benefits as you hydrate more of the UI (Fast by default; Hydrating interactive components).
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
@strange plume Kapa.ai is still learning and improving, please let me know how I did by reacting below.
@knotty garnet but I do like the DX so it's worth right?
Let me check the knowledge base for you again. One moment! :books:
If you like the DX, Astro is a strong choice. It’s designed to be easy to use (HTML-first Astro syntax, opt-in complexity) and developer-focused (great CLI, VS Code tooling, active community) (Easy to use; Developer-focused).
Just remember its sweet spot is content-driven, server-first sites with interactive “islands.” If most of your app must be fully client-interactive, you can do it, but you’ll trade away some of Astro’s fast-by-default benefits as you hydrate more UI (Design principles; Client islands; Fast by default).
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
@strange plume Kapa.ai is still learning and improving, please let me know how I did by reacting below.
ok thanks
@knotty garnet so for page load speeds, if I were to use multiple frameworks (React, Svelte, etc.) would that make the page itself load slower because I included multiple of those libraries or is it just the libraries that are used on that specific page that have their JS attached?
Let me check the knowledge base for you again. One moment! :books:
Only the frameworks actually used on a given page are sent to the browser, and each framework is only sent once even if multiple components use it on that page. Hydration is opt-in per component via client directives, so you don’t pay for frameworks that aren’t used or hydrated on that page (Hydrating interactive components). You can also mix frameworks on the same page; Astro distinguishes them and renders appropriately. Extra config is only needed when using multiple JSX frameworks in one project (React/Preact/Solid) to tell Astro which files belong to which framework (Mixing frameworks; Combining multiple JSX frameworks).
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
@strange plume Kapa.ai is still learning and improving, please let me know how I did by reacting below.
@knotty garnet for prefetching though, does it make it slower or does prefetching start AFTER the page has loaded?
Let me check the knowledge base for you again. One moment! :books:
Short answer: Prefetching is designed not to slow down initial page load.
- By default, when enabled, links prefetch on hover/focus (“hover”) or just before click (“tap”), i.e., after initial load. You can also choose “viewport” (as links enter viewport) or “load” (after the page has loaded) per link or globally. “Load” explicitly waits until after the page load to prefetch all links (Prefetch guide; Default/All links config).
- Prefetching respects data saver/slow connection and falls back to a lighter strategy to avoid hurting performance (Prefetch guide).
- If you enable experimental client prerendering, Astro uses Speculation Rules to prerender via the browser; it still runs based on your prefetch config and only in supported browsers (Client prerender flag; Browser support).