Features
43 packages across 7 architecture layers. Each is a standalone Composer package on Packagist.
Architecture Layers
7 Application: full app bootstrap, CLI, deployment
6 API & Serialization: JSON:API, GraphQL, normalization
5 Node & Routing: content nodes, URL routing, menus
4 Access & Taxonomy: permissions, roles, vocabularies
3 Entity: entity types, bundles, storage handlers
2 Field & Storage: typed fields, schemas, database abstraction
1 Foundation: dependency injection, events, configuration
Entity System
Drupal's entity/field model, rebuilt for PHP 8.4. Entities are typed, fieldable content objects. Fields are self-describing value objects with validation, serialization, and storage built in.
- EntityInterface: base contract for all content objects
- FieldDefinition: typed field declarations with constraints
- Revisions: built-in content versioning
- Translations: multilingual content from the ground up
Access Control
Deny-unless-granted. Every operation on every entity and field is denied by default. Access comes through explicit policies, evaluated at both the entity and field level.
- AccessPolicy: declare who can do what, on which entities
- Field-level permissions: control read/write access per field
- Role hierarchy: composable roles with inheritance
API Layer
You define an entity type. Waaseyaa generates full CRUD endpoints in JSON:API and GraphQL. No controllers to write, no routes to register.
- JSON:API: spec-compliant with filtering, sorting, pagination, and includes
- GraphQL: auto-generated schema with queries and mutations
- Normalizers: customizable serialization per entity type
AI Packages
AI is not bolted on. Four dedicated packages treat AI as infrastructure, not a feature.
- ai-schema: extract structured schemas from entity definitions for LLM consumption
- ai-agent: build tool-using agents that operate on your entity model
- ai-pipeline: composable processing pipelines for content enrichment
- ai-vector: vector embeddings and similarity search for entities