Skip to content

Support TanStack Start via the Node directory adapter #118

Description

@tensordreams

Problem

TanStack Start builds for the Nitro node-server preset produce a multi-file .output tree: the server entry imports sibling chunks and libraries, while static assets live under .output/public. The published Composer 0.1.0 single-file Node adapter could not ship that output intact.

Current main now has the directory form of the Node adapter, which provides the required deterministic mechanism without a framework-specific control-plane extension:

node({
  module: import.meta.url,
  dir: '../.output',
  entry: 'server/index.mjs',
})

This exact shape has been deployed successfully on Prisma Compute with a TanStack Start application, including SSR, public assets, server functions, a Composer-provisioned Prisma Postgres database, and Prisma Next queries.

Proposal

  • Document TanStack Start as a supported use of the Node directory adapter.
  • Add a runnable example using TanStack Start's Nitro node-server output.
  • Add focused coverage proving Composer assembles the complete Nitro output tree and selects server/index.mjs without discovering filenames or transforming application code.
  • Mirror the guidance in the installable prisma-composer skill.

This intentionally does not add a tanstackStart() adapter. The application names Nitro's documented output directory and entry explicitly, while the existing Node adapter copies exactly that tree. That keeps the implementation aligned with the repository's no-bundling/no-guessing and compose-don't-special-case principles.

Validation target

The example should build, assemble, boot, serve an SSR route, and serve a public asset. A remote deploy can be used as additional evidence but should not be required for the normal test suite.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions