Veap is a pre-1.0 set of MIT-licensed packages for Next.js 16 - 8 services, 4 ORM traits and the create-veap CLI. Install the ones you need, compose them once, and keep the stock Next.js build.
Veap is not a framework that replaces your renderer. It is a set of independent packages - lifecycle, ORM, auth, events, plugins, i18n, mail, settings, storage - that you install into the app you already have.
Every project needs identity, persistence, events and delivery. Veap publishes each concern as a package with a documented entry point, so you install the ones you use instead of assembling them from scratch.
Next.js keeps owning route discovery, layouts, request APIs and the build. Veap services are resolved from server-only modules, Route Handlers and Server Actions.
Veap does not emit or require a folder convention. The layout below is a suggestion from the docs: keep route UI in the App Router and server composition in one server-only module.
Drivers and transports sit behind contracts resolved from the container. Swap SQLite for Postgres, SMTP for the console transport or the local disk for your own storage provider in configuration.
There is no framework migration waiting for you: either let the scaffolder create a Next.js project with the Veap overlay, or install the packages into the app you already run.
The initializer runs the official create-next-app(TypeScript, Tailwind, ESLint, React Compiler, @/* alias) and then layers the Veap application shell on top: bootstrap module, route pipeline, migrations, plugins registry, an ENCRYPTION_KEY in .env and engines.node >= 22.
@veap/framework entry point. Review the generated package.json against the package set you intend to use before installing.--docker.CLI guide→Nothing is generated into your tree by the packages themselves. You add dependencies, write the composition root once, and call a boot helper from server code.
The facts about packages, stability and licensing, without marketing gloss.
@veap/kernel, @veap/database, @veap/auth and the rest - that run on top of the stock Next.js 16 App Router. The dev server, the build and every rendering feature stay exactly as they are; you can verify that in the comparison.bun veap add @veap/blog-plugin, which also regenerates the plugins registry. Run veap eject to copy a plugin into plugins/ when you want to own its source, and toggle it at runtime from the panel - status, migrations and widgets are persisted.If you read nothing else: the runtime is standard Next.js, every package is MIT licensed, and the Veap layer can leave as easily as it arrived.