What readers are asking
The engineering questions that keep coming back — each one answered, each answer linking to the full guide.
What readers are asking
Questions that keep coming back in reader feedback, already answered.
- 01
Why is my Astro component's interactivity not working?
Components ship as zero-JS HTML by default, so an interactive one needs a client:* directive (client:load, client:visible, …). Without it the script is never bundled into the page.
See the full guide → - 02
Why is my custom Tailwind v4 brand colour not applied?
Colours must be declared in @theme (for example --color-brand). A missing @tailwindcss/vite plugin, or a leftover v3 config, makes bg-brand silently render nothing.
See the full guide → - 03
Why are _headers / _redirects not taking effect?
Both files must sit at the root of the output directory (dist/); anything under src/ is never uploaded. A purely static project should not add _worker.js either — that gives up the zero-cold-start advantage.
See the full guide → - 04
How do the canonical and sitemap domains stay in sync?
Both must read site.origin (the Astro site setting). A hardcoded domain breaks everywhere the moment you change domains or use a Preview URL, and the pages get treated as duplicates.
See the full guide → - 05
How do I stop generated pages being flagged as duplicate content?
Every page needs a unique canonical, its own title, and genuinely differentiated body copy. Pages that only swap a keyword while keeping an identical structure must gain real differences, or search engines fold them together.
See the full guide → - 06
Why is a full-length llms.txt being downweighted?
AI crawlers prefer a summary plus canonical URLs; padding it with the entire corpus reads as low quality. Keep llms.txt as a map and let the landing pages carry the detail.
See the full guide → - 07
What are the hard requirements for FAQPage structured data?
Every Question needs an acceptedAnswer, and the Q&A must be real and verifiable — fabricated answers get downweighted by ChatGPT Search / Perplexity.
See the full guide → - 08
What goes wrong when Vite manualChunks is misconfigured?
A wrong split pushes styles into the JS bundle or creates circular dependencies, and first-paint size goes up instead of down. Start with a coarse vendor split, then refine it.
See the full guide → - 09
Which Astro version supports the @tailwindcss/vite integration reliably?
Astro 5 and later officially recommend the @tailwindcss/vite plugin over the old PostCSS route. Pin the astro and tailwind major versions before upgrading, or the new plugin silently ignores your v3 config.
See the full guide → - 10
How do I invalidate the Cloudflare edge cache precisely?
Give static assets a long immutable max-age and serve HTML with must-revalidate. Changing a filename changes the URL, so Cloudflare fetches the new version automatically.
See the full guide → - 11
Can one MCP server speak both stdio and HTTP?
No — a server picks a single transport. A remote endpoint must carry Bearer auth and scope its tools to read-only, otherwise you are exposing source execution to the public internet.
See the full guide → - 12
How should auth work when an MCP server runs at the edge?
Remote MCP goes over SSE or HTTP with a Bearer token, and tools get read-only scope; local stdio is never network-exposed. Do not put both transports behind the same server.
See the full guide → - 13
A Rust-compiled WASM build is a blank screen in a Worker — what do I check first?
It is usually a wasm-bindgen version mismatch with the runtime. Pin the wasm-pack and bindings versions, and run a smoke test before building.
See the full guide → - 14
How do I fix a failing Next.js output: export build?
Server-side data fetching in dynamic routes, and middleware, both break the export; next/image also needs unoptimized or the export aborts.
See the full guide → - 15
TypeScript reports a circular dependency — how do I locate it?
With verbatimModuleSyntax on, type imports must be written as import type, otherwise they are treated as runtime dependencies and form a cycle. Tighten your module boundaries first, then raise strict.
See the full guide → - 16
Why does my Go binary fail with missing dependencies on another machine?
CGO was left on, so the binary depends on the target machine's libc. Build with CGO_ENABLED=0 and static linking, then cross-compile per GOOS / GOARCH.
See the full guide → - 17
Why does the same project error out when I run it with Bun?
Native modules are missing, or some Node APIs behave differently under Bun. Pin the Bun version in CI; migrate older projects gradually and initialise new ones with Bun directly.
See the full guide →