Skip to main content

Directory Layout

inly-core/
├── src/                    PHP backend
│   ├── Actions/            CoreAction base and built-in actions
│   ├── Models/             User, ValueStore, and base model traits
│   ├── Tables/             CoreTable, columns, and filters
│   ├── Pages/              CoreIndexPage, CoreShowPage, page helpers
│   ├── Properties/         Property types, SchemaDefinition, adapters
│   ├── Workflows/          Workflow base classes and traits
│   ├── Services/           AutoRegistration, and other services
│   └── Layouts/            Layout base classes and navigation

├── resources/
│   ├── js/core/            React components, hooks, and utilities
│   └── css/                Core stylesheet

├── stubs/laravel/          Files published to client projects
│   ├── app/                Application scaffolding (models, enums, helpers)
│   ├── .cursor/skills/     Agent skills for client projects
│   └── config/             Default config stubs

├── docs/                   Mintlify documentation
├── tests/                  Pest test suite (Orchestra Testbench)
└── bin/                    release.sh and deploy-forge.sh

The Publishing System

Core uses Laravel’s package publishing system to push files from stubs/laravel/ into client projects.
  • php artisan core:install — run once when setting up a new project. Publishes the full stubs directory.
  • php artisan core:update — run after updating the inly/core Composer package. Re-publishes changed stubs.
When you add a new feature that requires client-side configuration (a new config file, a new stub, or a new skill), add it to stubs/laravel/ and verify both install and update commands publish it correctly.

Agent Skills

stubs/laravel/.cursor/skills/ contains the agent skills available in every client project. The most important is create-object, which generates complete domain objects from a description. When improving a skill:
  1. Edit the skill in stubs/laravel/.cursor/skills/
  2. Test it in a client project via the symlink setup
  3. The updated skill is distributed to all client projects when they run php artisan core:update

Frontend Assets

resources/js/core/ is the Core React component library. Components are imported in client projects via the @/core/ path alias. The TypeScript path alias is configured in the client project’s tsconfig.json and vite.config.ts. Core’s Vite config is merged into the client project’s config during publish.