semitexa / ultimate
Semitexa Ultimate - full-stack project skeleton for SSR applications with docs and core modules
Package info
github.com/semitexa/semitexa-ultimate
Language:Shell
Type:project
pkg:composer/semitexa/ultimate
Requires
- php: ^8.4
- semitexa/api: 2026.10.15.2225
- semitexa/auth: 2026.10.08.0620
- semitexa/authorization: 2026.10.16.0400
- semitexa/cache: 2026.10.15.2225
- semitexa/core: 2026.10.19.0811
- semitexa/crud: 2026.10.14.0919
- semitexa/dev: 2026.10.19.0811
- semitexa/docs: 2026.10.19.0811
- semitexa/ledger: 2026.10.15.2225
- semitexa/llm: 2026.10.08.0620
- semitexa/locale: 2026.10.08.0620
- semitexa/mail: 2026.10.08.0620
- semitexa/media: 2026.10.08.0620
- semitexa/orm: 2026.10.19.0811
- semitexa/platform-settings: 2026.10.08.0620
- semitexa/platform-ui: 2026.10.19.0811
- semitexa/project-graph: 2026.10.17.0511
- semitexa/prompt: 2026.10.08.0620
- semitexa/rbac: 2026.10.08.0620
- semitexa/scheduler: 2026.10.08.0620
- semitexa/search: 2026.10.08.0620
- semitexa/ssr: 2026.10.19.0811
- semitexa/storage: 2026.10.08.0620
- semitexa/tenancy: 2026.10.08.0620
- semitexa/theme: 2026.10.19.0811
- semitexa/update: 2026.10.19.0811
- semitexa/webhooks: 2026.10.08.0620
- semitexa/workflow: 2026.10.08.0620
Requires (Dev)
- phpstan/phpstan: 2.1.40
- phpunit/phpunit: ^10.5
- semitexa/testing: 2026.10.19.0811
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-master
- 2026.10.19.0811
- 2026.10.17.1236
- 2026.10.17.0511
- 2026.10.16.1744
- 2026.10.16.0516
- 2026.10.16.0400
- 2026.10.15.2225
- 2026.10.14.1540
- 2026.10.14.0919
- 2026.10.09.0942
- 2026.10.09.0714
- 2026.10.08.0620
- 2026.10.04.0921
- 2026.10.03.1952
- 2026.10.01.1020
- 2026.09.30.1034
- 2026.09.29.0833
- 2026.09.28.1812
- 2026.09.28.0838
- 2026.09.28.0444
- 2026.09.27.0404
- 2026.09.24.1147
- 2026.09.23.1717
- 2026.09.22.0645
- 2026.09.19.1020
- 2026.09.17.1829
- 2026.09.17.1557
- 2026.09.17.1352
- 2026.09.17.1037
- 2026.09.16.0602
- 2026.09.14.0605
- 2026.09.13.1915
- 2026.09.13.1330
- 2026.09.13.0749
- 2026.09.12.0949
- 2026.09.12.0614
- 2026.09.11.1941
- 2026.09.11.0529
- 2026.09.10.0641
- 2026.09.09.1708
- 2026.09.09.0634
- 2026.09.08.2003
- 2026.09.06.0456
- 2026.09.05.1733
- 2026.09.05.1548
- 2026.09.04.0512
- 2026.09.03.1906
- 2026.09.02.0604
- 2026.09.01.2231
- 2026.08.25.0718
- 2026.08.21.0628
- 2026.08.20.1222
- 2026.08.20.0516
- 2026.08.19.2107
- 2026.08.19.1426
- 2026.08.19.0649
- 2026.08.18.2030
- 2026.08.12.0606
- 2026.08.12.0542
- 2026.08.11.0653
- 2026.08.06.1727
- 2026.08.05.0406
- 2026.08.04.2121
- 2026.08.04.2028
- 2026.07.28.1623
- 2026.07.28.0830
- 2026.07.27.1152
- 2026.07.27.1003
- 2026.07.25.0821
- 2026.07.23.1344
- 2026.07.23.0617
- 2026.07.22.1910
- 2026.07.22.1226
- 2026.07.20.0639
- 2026.07.16.0803
- 2026.07.15.1418
- 2026.07.15.0701
- 2026.07.14.0610
- 2026.07.12.0729
- 2026.07.11.0650
- 2026.07.11.0619-beta
- 2026.07.09.1540
- 2026.07.07.1936
- 2026.07.06.1438
- 2026.06.22.0520
- 2026.06.21.0352
- 2026.05.27.0859
- 2026.05.26.1146
- 2026.05.24.1443
- 2026.05.24.0646
- 2026.05.23.0553
- 2026.05.21.1608
- 2026.05.21.0743
- 2026.05.21.0717
- 2026.05.20.1518
- 2026.05.19.1709
- 2026.05.19.1501
- 2026.05.19.1016
- 2026.05.18.1642
- 2026.05.18.1420
- 2026.05.12.0933
- 2026.05.12.0904
- 2026.05.12.0744
- 2026.05.12.0643
- 2026.05.11.1359
- 2026.05.10.1449
- 2026.05.09.0726
- 2026.05.08.1640
- 2026.04.26.1458
- 2026.04.26.0801
- 2026.04.26.0639
- 2026.04.23.0856
- 2026.04.23.0705
- 2026.04.23.0637
- 2026.04.22.1153
- 2026.04.22.1008
- 2026.04.21.2047
- 2026.04.21.1926
- 2026.04.21.1359
- 2026.04.21.0704
- 2026.04.17.1043
- 2026.04.17.0433
- 2026.04.15.1848
- 2026.04.15.1128
- 2026.04.15.0921
- 2026.04.14.1121
- 2026.04.13.0911
- 2026.04.12.1209
- 2026.04.09.1145
- 2026.04.09.0444
- 2026.04.09.0412
- 2026.04.08.2108
- 2026.04.08.2025
- 2026.04.07.2058
- 2026.04.07.1933
- 2026.04.07.1133
- 2026.04.06.1418
- 2026.04.05.1915
- 2026.04.05.0855
- 2026.04.03.1349
- 2026.04.03.1240
- 2026.04.03.1207
- 2.0.19
- 2.0.18
- 2.0.17
- 2.0.16
- 2.0.11
- 2.0.10
- dev-develop
- dev-review/package-metadata-20260323
This package is auto-updated.
Last update: 2026-10-19 20:31:15 UTC
README
Semitexa
Semitexa is a modular PHP framework with a Swoole-first runtime: server-side rendered pages, typed request payloads and handlers, an ORM and an event bus, all running in long-lived workers inside Docker. It is for PHP developers who want an application that stays fast under load and that an AI coding agent can work on safely: the framework describes its own structure and checks every change.
This repository is Semitexa Ultimate, the project skeleton a new Semitexa application starts from.
Three ideas
- Project Graph. Semitexa scans your code into a graph of classes and the real edges between them (instantiates, implements, handles, serves route, and so on). You, or an agent, can ask who uses a class or what a change would affect instead of grepping:
bin/semitexa ai:review-graph:query --usages=<Class>,bin/semitexa ai:review-graph:impact <Class>. - ai:verify. After an edit,
bin/semitexa ai:verifyruns the lints, tests and module-structure checks that apply to the changed files, and writes a receipt that records what it checked, so a "verified" claim can be checked rather than believed. - Swoole SSR with live updates over SSE. Pages are rendered on the server by long-lived Swoole workers. Slow parts of a page can be deferred and streamed into it over Server-Sent Events, and server-side changes can be pushed to pages that are already open the same way.
Quickstart
Prerequisites: Docker with Compose v2, and a user in the docker group. You do not need PHP or Composer on the host; the runtime (PHP 8.4 + Swoole 6.x) runs inside the container.
curl -fsSL https://semitexa.com/install.sh | bash -s my-project cd my-project bin/semitexa server:start # first run takes about a minute (Composer runs in the setup container); prints the URL # open http://localhost:9502 (the default; if 9502 is busy, a free port in 9501-9599 is picked and written to .env) bin/semitexa orm:sync # create the database tables (the stack runs MySQL, Redis and NATS)
What the installer does outside the project directory: it registers the app in ~/.semitexa/router/registry/apps/ so that several Semitexa projects on one machine get different ports. A local .test domain is optional and off by default. If you ask for one (--local-domain, or answer yes to the prompt), it starts shared router containers on host port 80 and, with sudo, changes your system DNS (systemd-resolved, /etc/resolv.conf) or /etc/hosts.
To stop the stack: bin/semitexa server:stop. To see every command: bin/semitexa list. The project starts in APP_ENV=dev; on a server, set APP_ENV=prod and APP_DEBUG=0 in .env. Use the installer above: composer require and composer create-project are not install paths.
What to open next
-
The Hello page. The page at
/of a new project is theHellomodule insrc/modules/Hello/. Read it as a working example of a module: a payload declares the route, a handler fills a resource, and a Twig template renders it. -
Your first page.
make:pagegenerates the payload, handler, resource and template in one go. It is a dry run by default; add--writeto create the files, then restart the server:bin/semitexa make:page --module=Hello --name=About --path=/about --method=GET --access=public bin/semitexa make:page --module=Hello --name=About --path=/about --method=GET --access=public --write bin/semitexa server:restart
-
Schema and data.
bin/semitexa orm:synccreates and updates tables from your entities;orm:diff,orm:statusandorm:seedsit next to it. -
Logs.
bin/semitexa logs:app.
Project layout
src/modules/<Module>/holds your application code (namespaceApp\Modules\<Module>\). Modules are picked up automatically; routes live only in modules.AGENTS.md,AI_ENTRY.md,AI_CONTEXT.mdare the instructions for AI coding agents.AI_NOTES.mdis yours and is never overwritten.var/docs/is a scratch folder for notes and drafts..env.defaultis the committed baseline; put local overrides in.env.
Tests
Tests run inside the project's containers; the installed project already has PHPUnit, and test:run creates the test database on its first run:
bin/semitexa test:run bin/semitexa test:run --filter MyTest
Module tests live next to the module they cover, in src/modules/<Module>/tests/.
Learn more
- Documentation: https://semitexa.com/docs
- Live demo of the framework: https://framework.semitexa.com