camelon

Project layout

camelon is zero-config for the standard layout. There is no config file — defineConfig and camelon.config.ts were removed. The framework discovers everything from the working directory.

my-app/
  src/
    routes/         file-based routes (folders = URL segments)
    document.tsx    the HTML shell around every page
    server.ts       bootstrap (the only required entry)
    gen/            manifest + contracts + openapi, regenerated by the build
  public/           static assets, served at /
  tsconfig.json     used for type-extracted contracts

gen/ is regenerated by camelon dev/build, so you can gitignore it. (Runtime validation reads route-contracts.json; if it's absent it's simply skipped. Commit that one file only if your production build can't run the type extraction and you still want validation.)

Overrides

Pass options to createHandler instead of a config file:

await createHandler({
  routes: manifest,
  csrf: { trustedOrigins: ['https://pay.example.com'] },
  session: myStore,
  db: myClient,
  multipart: { fileSize: 5 * 1024 * 1024 }, // upload cap; default 10 MB
});