The Modular Package Ecosystem.

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.

Why Veap

The Application Pieces Next.js Leaves to You.

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.

Package CompletenessPick and choose

Stop Rebuilding the Same Eight Things

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.

ConcernDIYPackage
Identity & RBACDIY@veap/auth
ORM & migrationsDIY@veap/database
Dependency injectionDIY@veap/kernel
Events & cacheDIY@veap/kernel
Plugins & widgetsDIY@veap/plugins
LocalizationDIY@veap/intl
Mail deliveryDIY@veap/mail
Settings & storageDIY@veap/settings
Fourteen packages: eight runtime services, shared UI, the create-veap CLI and four ORM traits - all pre-1.0.Package reference→
Additive by DesignNo lock-in

Next.js Stays Next.js

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.

Your Application
Veap packages
additive
Next.js App Router
untouched
Install one package or all of them. `next dev` never changes.Next.js integration→
No Imposed LayoutYour structure

A Package Ecosystem, Not a Skeleton

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.

my-app/
├── app/ Next.js routes & UI
├── src/veap/application.ts server-only
├── src/features/ your services
└── migrations/ if your app owns them
Boundaries come from server-only modules and `client` / `server` entry points, not from folder names.Project structure→
Swappable InfrastructurePorts & adapters

Adapters, Not Rewrites

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.

DATABASEsqlite · postgres · mysql2
MAIL_TRANSPORTsmtp · console · custom
STORAGElocal · your provider
CACHE_PROVIDERin-memory · your own
Database and mail drivers stay optional peer dependencies.Database guide→
Get Started

Scaffold a Project, or Add Packages to Yours.

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.

Quick Startbun · pnpm · npm · yarn

Scaffold with create-veap

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.

$ bun create veap my-app
create-next-app → Veap overlay → package-manager install
$ cd my-app && bun dev
next dev on :3000 with the Veap shell in place
✓ Ready in 948ms · Local: http://localhost:3000
Documented caveat: the generated manifest still injects the monolithic-era @veap/framework entry point. Review the generated package.json against the package set you intend to use before installing.
Docker files are one flag away: --docker.CLI guide→
Existing ProjectAdditive

Install Packages, Wire One Root

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.

01Install the packages you need
$ bun add @veap/kernel @veap/database
Packages are independent and versioned separately. Drivers such as better-sqlite3, pg or mysql2 stay your choice.
02Write the composition root
$ src/server/veap.ts
Application.configure().use(...).create() in one server-only module - register infrastructure before the providers that depend on it.
03Boot before resolving services
$ await ensureVeapBooted()
Bootstrap runs once per process and is skipped in the browser and during next build, so builds never need a database.
SQLite for development, PostgreSQL for production.Who owns which file→First application→
FAQ · Early Access

Questions, Answered Plainly.

The facts about packages, stability and licensing, without marketing gloss.

Is Veap a fork of Next.js?+
No. Veap is a set of MIT-licensed npm packages - @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.
What does Early Access mean?+
Every package is still pre-1.0, so APIs can change between minor releases. Early Access users get the full package set, the official plugin registry and direct input on the roadmap in exchange for tolerating occasional breaking changes.
Which databases, runtimes and package managers are supported?+
Any Knex-compatible database: SQLite through better-sqlite3 for zero-config development, PostgreSQL through pg for production, and MySQL through mysql2 if you install that driver yourself. Node 22 or newer is required, and the scaffolder detects bun, pnpm, npm or yarn - the whole flow runs on the package manager you already use.
Can I adopt it partially in an existing Next.js app?+
That is the intended path. Each package is installed on its own and providers are registered in one server-only composition root, so you can start with just @veap/kernel and @veap/database and add auth, plugins, mail or storage later. Nothing is generated into your tree, and dropping a package means deleting its provider line.
How do I install and manage plugins?+
Registry entries install with 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.
How does licensing work?+
The framework packages, the shared UI package and the official plugins are MIT licensed. Your plugins, templates and applications stay yours, with no runtime royalties or license keys.
Where do I report bugs or request features?+
Open an issue in the repository or reach out through the sponsors page. Early Access feedback goes straight into the roadmap, and the changelog documents every release.
Anything else? The docs cover every package in detail.Read the Docs→
At a GlancePre-1.0

The Short Version

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.

MIT licensedPackages, UI and plugins
Node 22+Bun, pnpm, npm or yarn
SQLite → PostgresMySQL through mysql2
Next.js 16.4 / React 19Stock runtime, no fork
14 packages8 services, UI, CLI, 4 traits
19 registry entries15 plugins + 4 ORM traits
Want to shape the roadmap while it is young?Become a Sponsor→
veap
Preparing0%