Skip to content
Source Available

The metadata engine
that makes Laravel self-describing.

Define your application's structure through POPOs (Poor Old PHP Objects) and PHP attributes. Core reflects, registers, and exposes everything. Routes, navigation, OData endpoints, semantic links, policies. Your code becomes the source of truth.

Why Core

Structure doesn't emerge. You have to describe it.

Routes multiply. Nobody knows all of them.

Navigation is hand-coded. Every new module requires manual wiring.

Permissions scatter across policies, middleware, and controllers.

There's no single place that answers: "What does this system actually consist of?"

The codebase knows everything. But it can't describe itself.

Core changes that.

Capabilities

Declare once. The system does the rest.

Metadata Engine

PHP 8 attributes on your classes become the structural DNA of your application. Core reads them at boot, validates consistency, and builds a live registry. No YAML. No JSON config.

Artifact Registry

Modules, apps, libraries, resources, cards, reports, tiles, KPIs, dashboards, actions, dialogs, value helps. Every building block is a registered artifact. Discoverable, queryable, composable.

Automatic Wiring

Routes generate from artifact declarations. Navigation builds from module metadata. OData endpoints register from resource attributes. You describe; Core wires.

Self-Contained Modules

Every feature module is a complete, standalone package: its own app, navigation, actions, reports, OData endpoints, settings. Install a module and everything registers automatically.

Semantic Links

Artifacts reference each other by semantic identity, not hardcoded routes. A dashboard tile can link to a report that links to an object page, all resolved at runtime through the registry.

Independent of SDK

Core runs standalone. You don't need the SDK to benefit from declarative architecture. Use Core to structure your application, then decide later whether the SDK's runtime adds value.

Building Blocks

Thirteen artifact types. One registry.

Module

Top-level feature container

Application

User-facing application within a module

Library

Shared UI5 library

Card

Integration card for overviews

Report

Tabular data with filters and variants

Tile

Launchpad tile with KPI or navigation

KPI

Key performance indicator with live data

Dashboard

Composable from cards, tiles, KPIs

Action

Backend operation bound to entity or module

Resource

Read-only structured data endpoint

Dialog

Global invokable view/controller pair

Value Help

Selection dialog bound to an entity set

Analytics Set

Aggregation-ready data set for reporting

Philosophy

Description, not configuration

Most frameworks ask you to configure behavior. Core asks you to describe structure.

The difference is fundamental:

  • Configuration is imperative. You tell the system what to do. It forgets as soon as the config changes.
  • Description is declarative. You tell the system what exists. It derives behavior from structure.

Core's metadata engine makes your code the source of truth. Routes, navigation, OData, policies. They're all consequences of what you've described, not things you've wired by hand.

Traditional Laravel

  • routes.php
  • config files
  • service providers
  • manual wiring
  • scattered structure

With Core

  • POPOs
  • #[SemanticObject]
  • #[SemanticLink]
  • → registry
  • → routes, navigation, everything
Free Access

Register once. Access everything.

One account gives you: Core documentation, the video course, and Composer credentials for laravelui5/core. Free. No credit card. No trial period.

OData: MIT | Core: BSL 1.1 | SDK: Commercial License