File Structure

File names: the + means "special file"

FileRuns whereJob
+page.svelteServer (first load) + browserThe page UI
+page.server.tsServer onlyload data (DB, secrets), form actions
+page.tsServer + browserload data that is safe in both places (public APIs)
+layout.svelteServer + browserShared UI (menu, footer) around pages
+layout.server.tsServer onlyload data shared by many pages
+server.tsServer onlyAPI endpoint (GET, POST), no page
hooks.server.tsServer onlyCode on every request (auth, logging)
  • .server in the name = never sent to the browser. Safe for secrets and databases.
  • +page.ts runs in both places, so no secrets, no DB, no Node-only modules.
  • Unsure which to use: choose +page.server.ts.