Skip to main content
Aikeedo is a PHP application assembled from small PSR components rather than a full-stack framework. Reading this section pays off when you’re writing a non-trivial plugin, tracing a bug, or deciding how to customize something safely.
This page applies to Aikeedo 5.x. Class names, paths and signatures match the 5.0 source code.

Technology

Design principles

src/ is split by domain rather than by technical layer: Ai, Billing, User, Workspace, Chatbot and so on. Each owns its entities, repositories, commands and events.
Behavior is expressed as a command plus a handler, dispatched through a bus. Reads use the same mechanism, so ListPlansCommand and CreateOrderCommand look alike from the outside.
Entities take value objects, not scalars. Validation lives in the value object’s constructor, so an invalid Email or Price can’t exist.
Payment gateways, tax engines, storage adapters, vector stores, AI services and tools are all looked up from registries a plugin can add to.
Handlers change entities; the application flushes once, after the response is sent.

The modules

Request lifecycle in brief

Each step is covered in Bootstrap and lifecycle and Routing and middleware.

Where to go next

Directory structure

What lives where in an installation.

Modules and layers

Domain, application and infrastructure inside a module.

Events

The full catalog of domain events.

AI subsystem

Services, models, streaming and credits.

Need Help?

If you need assistance with Aikeedo:

Professional Support

Get expert help from our team with a paid support subscription

Troubleshooting Guide

Check common issues and solutions