@dotkernel

Dotkernel

A headless platform for building modern web applications — for humans and AI agents

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.

Building Dotkernel applications with AI: dotboost

dotboost is drop-in Claude Code configuration for any Dotkernel application - API, Admin, Frontend, Light, Queue, or a project derived from one of them. The payload is a .claude/ directory you copy into your project root; every skill detects the variant first and applies the matching dialect, so the assistant follows this platform's conventions instead of generic PHP habits.

What it brings to a session:

  • /dk-* commands for the work that recurs - bootstrapping a fresh clone, planning a module, wiring a route end to end, tracing a request through the pipeline, running the QA gate, and a pre-PR convention review.
  • Skills covering the platform - module structure and Core layering, handler naming, Doctrine entities and migrations, input filters, HAL responses, OpenAPI attributes, the evolution pattern, testing, and the PSR standards as they are actually applied here.
  • A dependency ladder instead of guesswork - installed packages, then dotkernel/*, then Laminas and Mezzio, then vetted community packages, and only then hand-rolled code. Package names are verified against composer.lock or Packagist, never recalled from memory.
  • Guardrails that hold - *.local.php and data/oauth/ are unreadable, so database credentials and OAuth signing keys never reach the transcript. Dependency manifests, vendor/, and migrations cannot be written; installs, destructive git, and DB-mutating commands are blocked, including inside compound commands.

Being consumed by AI

A headless platform has no UI to explain itself, so the contract has to be machine-readable. That is the same property agents need, and we treat it as a first-class concern rather than an add-on:

  • A generated OpenAPI spec on every install - your endpoints, schemas, and auth flows are described in a format LLM-based tooling and agent frameworks read directly, with no hand-written docs to drift out of date.
  • Predictable, standards-based responses - HAL representations and PSR-7 messages mean an agent can traverse an API it has never seen before from the payload alone.
  • Agent-readable documentation - our content is published as markdown alongside the HTML, with an llms.txt index, so assistants and crawlers ingest the source text instead of scraping a rendered page.

Documentation

Documentation is available at: https://docs.dotkernel.org

Discussion

Open discussions are available at: https://github.com/orgs/dotkernel/discussions

Latest blog posts

Contributing and Support

Pinned Loading

  1. apiapiPublic

    A production-ready REST API application built on the Mezzio microframework and Laminas components, which implements standards like PSR-3, PSR-4, PSR-7, PSR-11 and PSR-15.

    PHP 50 7

  2. adminadminPublic

    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.

    PHP 39 8

  3. queuequeuePublic

    Queue management project, based on Mezzio, Symfony messenger and Swoole

    PHP 10 2

  4. lightlightPublic

    The smallest complete Mezzio application — a PSR-15 pipeline, routing and templating, with nothing to strip out. A real starting point for a simple site.

    PHP 11 5

  5. developmentdevelopmentPublic

    AlmaLinux on WSL2 for a RHEL-compatible local stack. One install script configures PHP, Apache, MariaDB, Git, Composer, Node.js, and phpMyAdmin.

    Jinja 8 4

  6. frontendfrontendPublic

    Dotkernel Frontend Application. Based on Mezzio microframework using Laminas components.

    PHP 25 6

Repositories

Showing 10 of 89 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content
@dotkernel

Dotkernel

A headless platform for building modern web applications — for humans and AI agents

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.

Building Dotkernel applications with AI: dotboost

dotboost is drop-in Claude Code configuration for any Dotkernel application - API, Admin, Frontend, Light, Queue, or a project derived from one of them. The payload is a .claude/ directory you copy into your project root; every skill detects the variant first and applies the matching dialect, so the assistant follows this platform's conventions instead of generic PHP habits.

What it brings to a session:

  • /dk-* commands for the work that recurs - bootstrapping a fresh clone, planning a module, wiring a route end to end, tracing a request through the pipeline, running the QA gate, and a pre-PR convention review.
  • Skills covering the platform - module structure and Core layering, handler naming, Doctrine entities and migrations, input filters, HAL responses, OpenAPI attributes, the evolution pattern, testing, and the PSR standards as they are actually applied here.
  • A dependency ladder instead of guesswork - installed packages, then dotkernel/*, then Laminas and Mezzio, then vetted community packages, and only then hand-rolled code. Package names are verified against composer.lock or Packagist, never recalled from memory.
  • Guardrails that hold - *.local.php and data/oauth/ are unreadable, so database credentials and OAuth signing keys never reach the transcript. Dependency manifests, vendor/, and migrations cannot be written; installs, destructive git, and DB-mutating commands are blocked, including inside compound commands.

Being consumed by AI

A headless platform has no UI to explain itself, so the contract has to be machine-readable. That is the same property agents need, and we treat it as a first-class concern rather than an add-on:

  • A generated OpenAPI spec on every install - your endpoints, schemas, and auth flows are described in a format LLM-based tooling and agent frameworks read directly, with no hand-written docs to drift out of date.
  • Predictable, standards-based responses - HAL representations and PSR-7 messages mean an agent can traverse an API it has never seen before from the payload alone.
  • Agent-readable documentation - our content is published as markdown alongside the HTML, with an llms.txt index, so assistants and crawlers ingest the source text instead of scraping a rendered page.

Documentation

Documentation is available at: https://docs.dotkernel.org

Discussion

Open discussions are available at: https://github.com/orgs/dotkernel/discussions

Latest blog posts

Contributing and Support

Pinned Loading

  1. apiapiPublic

    A production-ready REST API application built on the Mezzio microframework and Laminas components, which implements standards like PSR-3, PSR-4, PSR-7, PSR-11 and PSR-15.

    PHP 50 7

  2. adminadminPublic

    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.

    PHP 39 8

  3. queuequeuePublic

    Queue management project, based on Mezzio, Symfony messenger and Swoole

    PHP 10 2

  4. lightlightPublic

    The smallest complete Mezzio application — a PSR-15 pipeline, routing and templating, with nothing to strip out. A real starting point for a simple site.

    PHP 11 5

  5. developmentdevelopmentPublic

    AlmaLinux on WSL2 for a RHEL-compatible local stack. One install script configures PHP, Apache, MariaDB, Git, Composer, Node.js, and phpMyAdmin.

    Jinja 8 4

  6. frontendfrontendPublic

    Dotkernel Frontend Application. Based on Mezzio microframework using Laminas components.

    PHP 25 6

Repositories

Showing 10 of 89 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@dotkernel

Dotkernel

A headless platform for building modern web applications — for humans and AI agents

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.

Building Dotkernel applications with AI: dotboost

dotboost is drop-in Claude Code configuration for any Dotkernel application - API, Admin, Frontend, Light, Queue, or a project derived from one of them. The payload is a .claude/ directory you copy into your project root; every skill detects the variant first and applies the matching dialect, so the assistant follows this platform's conventions instead of generic PHP habits.

What it brings to a session:

  • /dk-* commands for the work that recurs - bootstrapping a fresh clone, planning a module, wiring a route end to end, tracing a request through the pipeline, running the QA gate, and a pre-PR convention review.
  • Skills covering the platform - module structure and Core layering, handler naming, Doctrine entities and migrations, input filters, HAL responses, OpenAPI attributes, the evolution pattern, testing, and the PSR standards as they are actually applied here.
  • A dependency ladder instead of guesswork - installed packages, then dotkernel/*, then Laminas and Mezzio, then vetted community packages, and only then hand-rolled code. Package names are verified against composer.lock or Packagist, never recalled from memory.
  • Guardrails that hold - *.local.php and data/oauth/ are unreadable, so database credentials and OAuth signing keys never reach the transcript. Dependency manifests, vendor/, and migrations cannot be written; installs, destructive git, and DB-mutating commands are blocked, including inside compound commands.

Being consumed by AI

A headless platform has no UI to explain itself, so the contract has to be machine-readable. That is the same property agents need, and we treat it as a first-class concern rather than an add-on:

  • A generated OpenAPI spec on every install - your endpoints, schemas, and auth flows are described in a format LLM-based tooling and agent frameworks read directly, with no hand-written docs to drift out of date.
  • Predictable, standards-based responses - HAL representations and PSR-7 messages mean an agent can traverse an API it has never seen before from the payload alone.
  • Agent-readable documentation - our content is published as markdown alongside the HTML, with an llms.txt index, so assistants and crawlers ingest the source text instead of scraping a rendered page.

Documentation

Documentation is available at: https://docs.dotkernel.org

Discussion

Open discussions are available at: https://github.com/orgs/dotkernel/discussions

Latest blog posts

Contributing and Support

Pinned Loading

  1. apiapiPublic

    A production-ready REST API application built on the Mezzio microframework and Laminas components, which implements standards like PSR-3, PSR-4, PSR-7, PSR-11 and PSR-15.

    PHP 50 7

  2. adminadminPublic

    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.

    PHP 39 8

  3. queuequeuePublic

    Queue management project, based on Mezzio, Symfony messenger and Swoole

    PHP 10 2

  4. lightlightPublic

    The smallest complete Mezzio application — a PSR-15 pipeline, routing and templating, with nothing to strip out. A real starting point for a simple site.

    PHP 11 5

  5. developmentdevelopmentPublic

    AlmaLinux on WSL2 for a RHEL-compatible local stack. One install script configures PHP, Apache, MariaDB, Git, Composer, Node.js, and phpMyAdmin.

    Jinja 8 4

  6. frontendfrontendPublic

    Dotkernel Frontend Application. Based on Mezzio microframework using Laminas components.

    PHP 25 6

Repositories

Showing 10 of 89 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@dotkernel

Dotkernel

A headless platform for building modern web applications — for humans and AI agents

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.

Building Dotkernel applications with AI: dotboost

dotboost is drop-in Claude Code configuration for any Dotkernel application - API, Admin, Frontend, Light, Queue, or a project derived from one of them. The payload is a .claude/ directory you copy into your project root; every skill detects the variant first and applies the matching dialect, so the assistant follows this platform's conventions instead of generic PHP habits.

What it brings to a session:

  • /dk-* commands for the work that recurs - bootstrapping a fresh clone, planning a module, wiring a route end to end, tracing a request through the pipeline, running the QA gate, and a pre-PR convention review.
  • Skills covering the platform - module structure and Core layering, handler naming, Doctrine entities and migrations, input filters, HAL responses, OpenAPI attributes, the evolution pattern, testing, and the PSR standards as they are actually applied here.
  • A dependency ladder instead of guesswork - installed packages, then dotkernel/*, then Laminas and Mezzio, then vetted community packages, and only then hand-rolled code. Package names are verified against composer.lock or Packagist, never recalled from memory.
  • Guardrails that hold - *.local.php and data/oauth/ are unreadable, so database credentials and OAuth signing keys never reach the transcript. Dependency manifests, vendor/, and migrations cannot be written; installs, destructive git, and DB-mutating commands are blocked, including inside compound commands.

Being consumed by AI

A headless platform has no UI to explain itself, so the contract has to be machine-readable. That is the same property agents need, and we treat it as a first-class concern rather than an add-on:

  • A generated OpenAPI spec on every install - your endpoints, schemas, and auth flows are described in a format LLM-based tooling and agent frameworks read directly, with no hand-written docs to drift out of date.
  • Predictable, standards-based responses - HAL representations and PSR-7 messages mean an agent can traverse an API it has never seen before from the payload alone.
  • Agent-readable documentation - our content is published as markdown alongside the HTML, with an llms.txt index, so assistants and crawlers ingest the source text instead of scraping a rendered page.

Documentation

Documentation is available at: https://docs.dotkernel.org

Discussion

Open discussions are available at: https://github.com/orgs/dotkernel/discussions

Latest blog posts

Contributing and Support

Pinned Loading

  1. apiapiPublic

    A production-ready REST API application built on the Mezzio microframework and Laminas components, which implements standards like PSR-3, PSR-4, PSR-7, PSR-11 and PSR-15.

    PHP 50 7

  2. adminadminPublic

    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.

    PHP 39 8

  3. queuequeuePublic

    Queue management project, based on Mezzio, Symfony messenger and Swoole

    PHP 10 2

  4. lightlightPublic

    The smallest complete Mezzio application — a PSR-15 pipeline, routing and templating, with nothing to strip out. A real starting point for a simple site.

    PHP 11 5

  5. developmentdevelopmentPublic

    AlmaLinux on WSL2 for a RHEL-compatible local stack. One install script configures PHP, Apache, MariaDB, Git, Composer, Node.js, and phpMyAdmin.

    Jinja 8 4

  6. frontendfrontendPublic

    Dotkernel Frontend Application. Based on Mezzio microframework using Laminas components.

    PHP 25 6

Repositories

Showing 10 of 89 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
@dotkernel

Dotkernel

A headless platform for building modern web applications — for humans and AI agents

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.

Building Dotkernel applications with AI: dotboost

dotboost is drop-in Claude Code configuration for any Dotkernel application - API, Admin, Frontend, Light, Queue, or a project derived from one of them. The payload is a .claude/ directory you copy into your project root; every skill detects the variant first and applies the matching dialect, so the assistant follows this platform's conventions instead of generic PHP habits.

What it brings to a session:

  • /dk-* commands for the work that recurs - bootstrapping a fresh clone, planning a module, wiring a route end to end, tracing a request through the pipeline, running the QA gate, and a pre-PR convention review.
  • Skills covering the platform - module structure and Core layering, handler naming, Doctrine entities and migrations, input filters, HAL responses, OpenAPI attributes, the evolution pattern, testing, and the PSR standards as they are actually applied here.
  • A dependency ladder instead of guesswork - installed packages, then dotkernel/*, then Laminas and Mezzio, then vetted community packages, and only then hand-rolled code. Package names are verified against composer.lock or Packagist, never recalled from memory.
  • Guardrails that hold - *.local.php and data/oauth/ are unreadable, so database credentials and OAuth signing keys never reach the transcript. Dependency manifests, vendor/, and migrations cannot be written; installs, destructive git, and DB-mutating commands are blocked, including inside compound commands.

Being consumed by AI

A headless platform has no UI to explain itself, so the contract has to be machine-readable. That is the same property agents need, and we treat it as a first-class concern rather than an add-on:

  • A generated OpenAPI spec on every install - your endpoints, schemas, and auth flows are described in a format LLM-based tooling and agent frameworks read directly, with no hand-written docs to drift out of date.
  • Predictable, standards-based responses - HAL representations and PSR-7 messages mean an agent can traverse an API it has never seen before from the payload alone.
  • Agent-readable documentation - our content is published as markdown alongside the HTML, with an llms.txt index, so assistants and crawlers ingest the source text instead of scraping a rendered page.

Documentation

Documentation is available at: https://docs.dotkernel.org

Discussion

Open discussions are available at: https://github.com/orgs/dotkernel/discussions

Latest blog posts

Contributing and Support

Pinned Loading

  1. apiapiPublic

    A production-ready REST API application built on the Mezzio microframework and Laminas components, which implements standards like PSR-3, PSR-4, PSR-7, PSR-11 and PSR-15.

    PHP 50 7

  2. adminadminPublic

    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.

    PHP 39 8

  3. queuequeuePublic

    Queue management project, based on Mezzio, Symfony messenger and Swoole

    PHP 10 2

  4. lightlightPublic

    The smallest complete Mezzio application — a PSR-15 pipeline, routing and templating, with nothing to strip out. A real starting point for a simple site.

    PHP 11 5

  5. developmentdevelopmentPublic

    AlmaLinux on WSL2 for a RHEL-compatible local stack. One install script configures PHP, Apache, MariaDB, Git, Composer, Node.js, and phpMyAdmin.

    Jinja 8 4

  6. frontendfrontendPublic

    Dotkernel Frontend Application. Based on Mezzio microframework using Laminas components.

    PHP 25 6

Repositories

Showing 10 of 89 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@dotkernel

Dotkernel

A headless platform for building modern web applications — for humans and AI agents

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.

Building Dotkernel applications with AI: dotboost

dotboost is drop-in Claude Code configuration for any Dotkernel application - API, Admin, Frontend, Light, Queue, or a project derived from one of them. The payload is a .claude/ directory you copy into your project root; every skill detects the variant first and applies the matching dialect, so the assistant follows this platform's conventions instead of generic PHP habits.

What it brings to a session:

  • /dk-* commands for the work that recurs - bootstrapping a fresh clone, planning a module, wiring a route end to end, tracing a request through the pipeline, running the QA gate, and a pre-PR convention review.
  • Skills covering the platform - module structure and Core layering, handler naming, Doctrine entities and migrations, input filters, HAL responses, OpenAPI attributes, the evolution pattern, testing, and the PSR standards as they are actually applied here.
  • A dependency ladder instead of guesswork - installed packages, then dotkernel/*, then Laminas and Mezzio, then vetted community packages, and only then hand-rolled code. Package names are verified against composer.lock or Packagist, never recalled from memory.
  • Guardrails that hold - *.local.php and data/oauth/ are unreadable, so database credentials and OAuth signing keys never reach the transcript. Dependency manifests, vendor/, and migrations cannot be written; installs, destructive git, and DB-mutating commands are blocked, including inside compound commands.

Being consumed by AI

A headless platform has no UI to explain itself, so the contract has to be machine-readable. That is the same property agents need, and we treat it as a first-class concern rather than an add-on:

  • A generated OpenAPI spec on every install - your endpoints, schemas, and auth flows are described in a format LLM-based tooling and agent frameworks read directly, with no hand-written docs to drift out of date.
  • Predictable, standards-based responses - HAL representations and PSR-7 messages mean an agent can traverse an API it has never seen before from the payload alone.
  • Agent-readable documentation - our content is published as markdown alongside the HTML, with an llms.txt index, so assistants and crawlers ingest the source text instead of scraping a rendered page.

Documentation

Documentation is available at: https://docs.dotkernel.org

Discussion

Open discussions are available at: https://github.com/orgs/dotkernel/discussions

Latest blog posts

Contributing and Support

Pinned Loading

  1. apiapiPublic

    A production-ready REST API application built on the Mezzio microframework and Laminas components, which implements standards like PSR-3, PSR-4, PSR-7, PSR-11 and PSR-15.

    PHP 50 7

  2. adminadminPublic

    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.

    PHP 39 8

  3. queuequeuePublic

    Queue management project, based on Mezzio, Symfony messenger and Swoole

    PHP 10 2

  4. lightlightPublic

    The smallest complete Mezzio application — a PSR-15 pipeline, routing and templating, with nothing to strip out. A real starting point for a simple site.

    PHP 11 5

  5. developmentdevelopmentPublic

    AlmaLinux on WSL2 for a RHEL-compatible local stack. One install script configures PHP, Apache, MariaDB, Git, Composer, Node.js, and phpMyAdmin.

    Jinja 8 4

  6. frontendfrontendPublic

    Dotkernel Frontend Application. Based on Mezzio microframework using Laminas components.

    PHP 25 6

Repositories

Showing 10 of 89 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@dotkernel

Dotkernel

A headless platform for building modern web applications — for humans and AI agents

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.

Building Dotkernel applications with AI: dotboost

dotboost is drop-in Claude Code configuration for any Dotkernel application - API, Admin, Frontend, Light, Queue, or a project derived from one of them. The payload is a .claude/ directory you copy into your project root; every skill detects the variant first and applies the matching dialect, so the assistant follows this platform's conventions instead of generic PHP habits.

What it brings to a session:

  • /dk-* commands for the work that recurs - bootstrapping a fresh clone, planning a module, wiring a route end to end, tracing a request through the pipeline, running the QA gate, and a pre-PR convention review.
  • Skills covering the platform - module structure and Core layering, handler naming, Doctrine entities and migrations, input filters, HAL responses, OpenAPI attributes, the evolution pattern, testing, and the PSR standards as they are actually applied here.
  • A dependency ladder instead of guesswork - installed packages, then dotkernel/*, then Laminas and Mezzio, then vetted community packages, and only then hand-rolled code. Package names are verified against composer.lock or Packagist, never recalled from memory.
  • Guardrails that hold - *.local.php and data/oauth/ are unreadable, so database credentials and OAuth signing keys never reach the transcript. Dependency manifests, vendor/, and migrations cannot be written; installs, destructive git, and DB-mutating commands are blocked, including inside compound commands.

Being consumed by AI

A headless platform has no UI to explain itself, so the contract has to be machine-readable. That is the same property agents need, and we treat it as a first-class concern rather than an add-on:

  • A generated OpenAPI spec on every install - your endpoints, schemas, and auth flows are described in a format LLM-based tooling and agent frameworks read directly, with no hand-written docs to drift out of date.
  • Predictable, standards-based responses - HAL representations and PSR-7 messages mean an agent can traverse an API it has never seen before from the payload alone.
  • Agent-readable documentation - our content is published as markdown alongside the HTML, with an llms.txt index, so assistants and crawlers ingest the source text instead of scraping a rendered page.

Documentation

Documentation is available at: https://docs.dotkernel.org

Discussion

Open discussions are available at: https://github.com/orgs/dotkernel/discussions

Latest blog posts

Contributing and Support

Pinned Loading

  1. apiapiPublic

    A production-ready REST API application built on the Mezzio microframework and Laminas components, which implements standards like PSR-3, PSR-4, PSR-7, PSR-11 and PSR-15.

    PHP 50 7

  2. adminadminPublic

    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.

    PHP 39 8

  3. queuequeuePublic

    Queue management project, based on Mezzio, Symfony messenger and Swoole

    PHP 10 2

  4. lightlightPublic

    The smallest complete Mezzio application — a PSR-15 pipeline, routing and templating, with nothing to strip out. A real starting point for a simple site.

    PHP 11 5

  5. developmentdevelopmentPublic

    AlmaLinux on WSL2 for a RHEL-compatible local stack. One install script configures PHP, Apache, MariaDB, Git, Composer, Node.js, and phpMyAdmin.

    Jinja 8 4

  6. frontendfrontendPublic

    Dotkernel Frontend Application. Based on Mezzio microframework using Laminas components.

    PHP 25 6

Repositories

Showing 10 of 89 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
@dotkernel

Dotkernel

A headless platform for building modern web applications — for humans and AI agents

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.

Building Dotkernel applications with AI: dotboost

dotboost is drop-in Claude Code configuration for any Dotkernel application - API, Admin, Frontend, Light, Queue, or a project derived from one of them. The payload is a .claude/ directory you copy into your project root; every skill detects the variant first and applies the matching dialect, so the assistant follows this platform's conventions instead of generic PHP habits.

What it brings to a session:

  • /dk-* commands for the work that recurs - bootstrapping a fresh clone, planning a module, wiring a route end to end, tracing a request through the pipeline, running the QA gate, and a pre-PR convention review.
  • Skills covering the platform - module structure and Core layering, handler naming, Doctrine entities and migrations, input filters, HAL responses, OpenAPI attributes, the evolution pattern, testing, and the PSR standards as they are actually applied here.
  • A dependency ladder instead of guesswork - installed packages, then dotkernel/*, then Laminas and Mezzio, then vetted community packages, and only then hand-rolled code. Package names are verified against composer.lock or Packagist, never recalled from memory.
  • Guardrails that hold - *.local.php and data/oauth/ are unreadable, so database credentials and OAuth signing keys never reach the transcript. Dependency manifests, vendor/, and migrations cannot be written; installs, destructive git, and DB-mutating commands are blocked, including inside compound commands.

Being consumed by AI

A headless platform has no UI to explain itself, so the contract has to be machine-readable. That is the same property agents need, and we treat it as a first-class concern rather than an add-on:

  • A generated OpenAPI spec on every install - your endpoints, schemas, and auth flows are described in a format LLM-based tooling and agent frameworks read directly, with no hand-written docs to drift out of date.
  • Predictable, standards-based responses - HAL representations and PSR-7 messages mean an agent can traverse an API it has never seen before from the payload alone.
  • Agent-readable documentation - our content is published as markdown alongside the HTML, with an llms.txt index, so assistants and crawlers ingest the source text instead of scraping a rendered page.

Documentation

Documentation is available at: https://docs.dotkernel.org

Discussion

Open discussions are available at: https://github.com/orgs/dotkernel/discussions

Latest blog posts

Contributing and Support

Pinned Loading

  1. apiapiPublic

    A production-ready REST API application built on the Mezzio microframework and Laminas components, which implements standards like PSR-3, PSR-4, PSR-7, PSR-11 and PSR-15.

    PHP 50 7

  2. adminadminPublic

    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.

    PHP 39 8

  3. queuequeuePublic

    Queue management project, based on Mezzio, Symfony messenger and Swoole

    PHP 10 2

  4. lightlightPublic

    The smallest complete Mezzio application — a PSR-15 pipeline, routing and templating, with nothing to strip out. A real starting point for a simple site.

    PHP 11 5

  5. developmentdevelopmentPublic

    AlmaLinux on WSL2 for a RHEL-compatible local stack. One install script configures PHP, Apache, MariaDB, Git, Composer, Node.js, and phpMyAdmin.

    Jinja 8 4

  6. frontendfrontendPublic

    Dotkernel Frontend Application. Based on Mezzio microframework using Laminas components.

    PHP 25 6

Repositories

Showing 10 of 89 repositories

Top languages

Loading…

Most used topics

Loading…