A zero-code PHP framework for shared hosting — write names, get a working application.
Widdx is an MVC-style PHP 8.1+ framework where the developer writes only names; the framework inherits the rest. One command generates a full CRUD, one call wires authentication, and RTL is on by default. This page is the WIDDX Studio introduction to it — the full reference lives on GitHub.
A zero-code MVC PHP framework: you write names, the framework inherits the rest.
resource('posts')->public() — a full CRUD (7 routes + 5 pages) without writing its implementation.
authRoutes() — full sign-up, sign-in, sign-out, password recovery and email verification.
php widdx make:crud Product name:string price:float photo:image — model, table and routes in one command.
The framework lives inside your project folder. Nothing to install: no mandatory composer, no npm, no build step, no config file to edit.
The problem it solves, by audience:
| Audience | Problem | Widdx |
|---|---|---|
| PHP beginner | Classical MVC starts with many files, config and conventions. | Starts with one command; pages work immediately. |
| Shared hosting (cPanel) | No terminal, no composer, no daemon. | Upload a folder + /install.php; one cron entry for scheduled scripts. |
| Arabic / RTL applications | Manual RTL setup on every page. | APP_LOCALE=ar renders built-in pages with dir="rtl" out of the box. |
| Laravel developer | Familiar names that do not exist here. | Honest fatal errors instead of guessing; a migration path in the curriculum. |
| Building with AI agents | An agent that writes code on top of working code. | A binding manual (AGENTS.md) becomes a contract the agent is reviewed against. |
The result: a framework that removes the distance between wanting a feature and having it work — and removes repetition, not knowledge.
In Widdx you do not configure behaviour, you name it. The framework learns the rules and routes them through the convention, the name, the file and the environment. Learn the six rules below — they are the entire surface area you need to work without errors:
Post → posts; OrderItem → order_items. No $table to set; the convention is enough.
Input models are built from the same $rules array. string→text field, text→textarea, bool→checkbox, in:a,b→dropdown, file/image→file field, *id column→dropdown from its table.
views/posts/index.php overrides the built-in page. The folder is always the plural of the table.
hasMany(Player) → team_id on players; belongsToMany(Permission) → alphabetical pivot permission_role. No key names to write.
The presence of App\Policies\BookPolicy guards CRUD automatically; the absence of ->public() (without a policy) is treated as private by default.
Widdx does not depend on composer. The vendor folder is gitignored and rebuilt on first install. No composer require to add a feature.
Resource controller with public(), auth(), guarded() and owned() — the same line covers most CRUDs.
authRoutes() that wires sign-up, sign-in, sign-out, forgot and reset, email verification, and throttling.
make:crud generator that produces the model, the migration, the routes and a typed form from a single signature.
Built-in RTL: APP_LOCALE=ar flips the built-in pages with dir="rtl" without per-page work.
Storage, mail, queue, cache and validation, each with one readable face — no hidden configuration layer.
A binding agent contract (AGENTS.md + .agents/) that any AI tool is reviewed against, so the framework stays teachable.
Widdx is the framework WIDDX Studio builds and maintains. It is not for sale. The latest tagged version on the introduction document is v0.3.8; the test suite (php widdx test) is the reference for measured behaviour.
This page is the WIDDX Studio introduction. The complete reference, the curriculum and the AI guide live on GitHub:
From a single landing page to a full business platform — tell us what you need engineered.