Veap is a modular application framework built on Next.js App Router and React Server Components. It provides a plugin system with a virtual router, an ActiveRecord-style ORM, built-in authentication with RBAC, and a Laravel-inspired service provider architecture with dependency injection.
This documentation covers @veap/core version 0.11.x. Code in the repository is the source of truth; where this documentation and the code disagree, the code wins. Please report discrepancies.
How the documentation is organized#
- Getting Started: install Veap, create a project, understand the project structure, run your first application.
- Fundamentals: the architecture, application lifecycle, dependency injection, Server Components and Server Actions in Veap, the event bus, request context.
- Routing: the virtual router, defining pages, layouts, error and loading boundaries, middleware, metadata, API routes.
- Authentication: sessions, users, RBAC, extending the identity system.
- Data: the ORM, models, relations, transactions, migrations.
- Plugins: plugin architecture, lifecycle, extensions, widgets, hooks, templates.
- Services: mail, file storage, settings, internationalization.
- Configuration:
veap.config.tsoptions and environment variables. - Advanced: how Veap relates to Next.js, custom service providers.
- Deployment: production builds, environment variables, Docker, Vercel.
- Guides: step-by-step, task-oriented walkthroughs (first plugin, CRUD, authentication, gate plugins, database setup, custom adapters, testing, real-world cookbook).
- Troubleshooting: error messages and their causes.
- Reference: the public API of every entry point and the CLI reference.
Suggested learning path#
- Read Introduction and Installation, then create your first project.
- Read Architecture to understand what happens when a request arrives.
- Follow Your first plugin to add a feature of your own.
- Use the Reference and the topic chapters as you need them; when something fails, start with Troubleshooting.
Conventions used here#
Examples are TypeScript and use the import paths that Veap actually exposes. Server-only APIs are marked as such; APIs safe for client components are noted. When an entry point requires a "use server" file or a "use client" file, the example shows the directive.