knext

Official adapter

How knext runs on the official Next.js Deployment Adapter API.

knext is built on the official Next.js Deployment Adapter API — not a reverse-engineered runtime. The adapter is a small object implementing the official NextAdapter shape, shipped as a package export so any app (and the official compatibility harness) can point at it.

The adapter object

The knext adapter lives in @knext/core and is exported at @knext/core/adapter. Its default export is a NextAdapter:

const adapter: NextAdapter = {
  name: 'knext-adapter',
  modifyConfig(config, { phase }) {
    // forces output: 'standalone' on phase-production-build
  },
  async onBuildComplete(ctx) {
    // logs output counts + uploads static artifacts to object storage (keyed by buildId)
  },
};
export default adapter;
  • modifyConfig forces output: 'standalone' during the production build.
  • onBuildComplete uploads the build's static artifacts to the configured object store, keyed by buildId.

Wiring it into an app

You reference the adapter via experimental.adapterPath in next.config.ts, pointing at a thin local re-export file:

next-adapter.ts
import adapter from '@knext/core/adapter';
import type { NextAdapter as _NextAdapter } from 'next';

// keeps the official-adapter contract visible at the app boundary
export type KnextAdapter = _NextAdapter;

export default adapter;
next.config.ts (excerpt)
experimental: {
  adapterPath: path.resolve(import.meta.dirname, 'next-adapter.ts'),
},

This is the same pattern used by the example apps in the knext repo, and by this docs site (the dogfood target).

Compatibility honesty

knext validates the adapter against the official Next.js compatibility suite in CI. A smoke gate runs a Node + Bun matrix on every change, and a nightly job runs a partial subset of the official vercel/next.js deploy-test harness.

The full official suite is not passing yet. Until it is, knext makes no claim to "pass the official Next.js compatibility suite." See the compatibility matrix for the row-by-row, evidence-gated status.

On this page