Romaji to Kana Converter: Astro — Chapter 7, Exercise 1 ===================================================================== TASK Build the project, run the standalone server, and confirm -- with a browser and with a real curl POST request -- that both index.astro's own static page and the on-demand /api/convert route are served by the exact same running process on the exact same port, with no separate static file server involved. SOLUTION After running npm run build and starting the server: HOST=0.0.0.0 PORT=4321 node ./dist/server/entry.mjs Opening http://localhost:4321 in a real browser shows the styled converter page from Chapter 6 -- confirming the static half of the build (dist/client/index.html and its assets) is genuinely being served by this same process. Sending a real POST request to the same host and port confirms the on-demand half is being served by it too: curl -X POST http://localhost:4321/api/convert \ -H "Content-Type: application/json" \ -d '{"romaji":"sushi"}' # {"hiragana":"すし","katakana":"スシ"} Both requests succeed against the exact same address, port 4321, with only one node process running the whole time (confirmable with a process list showing a single entry.mjs process, or by checking that stopping that one process makes both the page and the API route immediately unreachable). Nothing separate is serving the static files -- there is no second process, no nginx instance, and no CDN involved in this local test at all. WHY THIS WORKS AS AN ANSWER ---------------------------- It verifies both halves of the claim independently and directly -- a real browser request for the static page, and a real curl request for the on-demand route -- against the identical host and port, and confirms via the process list that only one running process is actually responsible for both, rather than assuming Astro's own documentation is accurate without checking it locally.