A headless platform for building modern web applications
Dotkernel is a set of open-source PHP applications - REST API, admin, and queue - that ship assembled on Mezzio and Laminas, over one shared Doctrine domain layer called Core. OAuth2, RBAC, HAL, and a generated OpenAPI spec are wired together on install, not left for you to choose.
What is the Dotkernel Headless Platform?
The Dotkernel Headless Platform is made up of Open Source components aimed at businesses that need custom solutions. It supports microservices, as well as enterprise-grade APIs. Its modern, future-proof architecture is based on middleware and PSRs.
Doctrine, not Active Record
Explicit wiring, no magic
One domain, three deployables
Dependencies that move slowly
Three applications, one platform
API, Admin, and Queue declare the same Core namespaces - the same entities, repositories, and services.
A User means the same thing to the endpoint that creates it, the admin screen that moderates it, and the worker that emails it.
Three deployables that scale independently and never disagree about the domain.
Core\App Core\Admin Core\User
Core\Security Core\Setting
One set of entities and repositories. Committed in each repo, so a single-component start just works. Commit it into its own repo and share it as a Git submodule when you add a second.
API
The HTTP surface of your platform, ready for any client.
REST APIs on a readable PSR-15 middleware pipeline - no kernel, no facades, no runtime magic. OAuth2, RBAC, and OpenAPI included.
Admin
A back office for complete control over the same data your API serves.
A ready-to-go admin skeleton - table-based CRUD screens for your records, plus the pieces for reports and dashboards.
Set up your workspace
A production-like environment on your machine, and the context your AI tools need to write Dotkernel code - both ready before anything reaches your users.
Development Environment
A controlled local workspace for building and testing before release.
AlmaLinux on WSL2 for a RHEL-compatible local stack. One install script configures PHP, Apache, MariaDB, Git, Composer, Node.js, and phpMyAdmin.
For projects outside the platform
Not every project needs the full platform. These two skeletons stand on their own, outside the Headless Platform above.
Light
A small site or service without a platform around it.
The smallest complete Mezzio application - PSR-15 pipeline, routing, and templating, nothing to strip out. A real starting point for a simple site.
Every layer, on its own
Small, independent dot-* packages - pull in what you need. Lifecycle status for each lives on the Packages Lifecycle page.
Authentication +
Authorization +
Controllers +
Forms +
Session +
Logging & error handling +
Emailing +
Backend abstraction (database) +
Navigation +
Template engine +
Tools +
Extra libraries +
Useful reads
How to Use Twig Markdown to Generate HTML Pages at Runtime
How to wire twig/markdown-extra with league/commonmark so a Twig application converts Markdown files to HTML on every request, instead of pre-compiling pages at build time.
Read more ->What "Production Ready" Means for Dotkernel API
Dotkernel API describes itself as production ready. Here is exactly what that covers — and the infrastructure layer (rate limiting, gateway, federated identity, error tracking, health checks, caching) that stays yours to add before launch.
Read more ->How to build this website starting from Dotkernel Light
How this blog itself came together: starting from the Dotkernel Light starter project, then following the Tutorial 101 to add Doctrine ORM and load real data into the database.
Read more ->Control, scalability & performance you can build on.
Dotkernel is an open-source project created and led by the dev team at Apidemia - built first as an internal tool for handling complex architectures, now freely shared as our way of giving back to the community.