diff --git a/public/md-articles/index.md b/public/md-pages/index.md
similarity index 69%
rename from public/md-articles/index.md
rename to public/md-pages/index.md
index 87790bdf..96cc13db 100644
--- a/public/md-articles/index.md
+++ b/public/md-pages/index.md
@@ -22,6 +22,12 @@ entities:
- name: "Mezzio"
type: "SoftwareFramework"
url: "https://github.com/mezzio/mezzio-skeleton"
+ - name: "Dotkernel Development Environment"
+ type: "SoftwareApplication"
+ url: "https://github.com/dotkernel/development"
+ - name: "Dotboost"
+ type: "SoftwareApplication"
+ url: "https://github.com/dotkernel/dotboost"
standards: ["PSR-7", "PSR-11", "PSR-15"]
keywords: ["headless platform", "PHP", "Mezzio", "Laminas", "PSR-15 middleware", "REST API", "admin panel", "task queue", "open source"]
---
@@ -55,9 +61,9 @@ API, Admin, and Queue are designed to integrate into a single, unified headless
| Component | Role | Repository |
|---|---|---|
-| **API** | Framework-less, opinionated toolkit for shipping REST APIs; an alternative to legacy Laminas API Tools (Apigility) | https://github.com/dotkernel/api |
+| **API** | REST APIs on a readable PSR-15 middleware pipeline - no kernel, no facades, no runtime magic. OAuth2, RBAC, and OpenAPI included | https://github.com/dotkernel/api |
| **Admin** | Table-based backend for managing platform records, plus tools to build reports and dashboards | https://github.com/dotkernel/admin |
-| **Queue** | Asynchronous task queuing built on Symfony Messenger, wired into the Laminas Service Manager container via netglue/laminas-messenger | https://github.com/dotkernel/queue |
+| **Queue** | Background job processing for the platform - dispatch work from API or Admin and run it in a separate worker, built on Symfony Messenger | https://github.com/dotkernel/queue |
## Skeletons outside the platform
@@ -65,8 +71,17 @@ Not every project needs a headless platform - these two stand on their own.
| Skeleton | Purpose | Repository |
|---|---|---|
-| **Light** | Minimal, PSR-15 compliant skeleton built for learning purposes - a didactic example, not a platform component | https://github.com/dotkernel/light |
-| **Frontend** | Standalone skeleton for building frontend applications on Mezzio and Laminas, separate from the headless platform | https://github.com/dotkernel/frontend |
+| **Light** | The smallest complete Mezzio application - PSR-15 pipeline, routing, and templating, nothing to strip out. A real starting point for a simple site | https://github.com/dotkernel/light |
+| **Frontend** | A web starter skeleton for full-stack applications on Mezzio and Laminas - server-rendered Twig views, forms, sessions, and RBAC-guarded routes | https://github.com/dotkernel/frontend |
+
+## Developer tooling
+
+A production-like environment on your machine, and the context your AI tools need to write Dotkernel code.
+
+| Tool | Purpose | Repository |
+|---|---|---|
+| **Development Environment** | AlmaLinux on WSL2 for a RHEL-compatible local stack. One install script configures PHP, Apache, MariaDB, Git, Composer, Node.js, and phpMyAdmin | https://github.com/dotkernel/development |
+| **Dotboost** | Dotkernel context for AI coding tools - current standards, architectural patterns, and framework idioms, so generated code matches the ecosystem instead of guessing at it | https://github.com/dotkernel/dotboost |
## Components (dot-* packages)
diff --git a/src/App/templates/app/index.html.twig b/src/App/templates/app/index.html.twig
index afe15022..17389f76 100644
--- a/src/App/templates/app/index.html.twig
+++ b/src/App/templates/app/index.html.twig
@@ -1,6 +1,7 @@
{% extends '@layout/default.html.twig' %}
{% block json_ld %} {{ include('@jsonld/index.jsonld.twig') }} {% endblock %}
{% block title %}A PSR-15 compliant application{% endblock %}
+{% block head_links %}{% endblock %}
{% block content %}
diff --git a/src/App/templates/layout/default.html.twig b/src/App/templates/layout/default.html.twig
index 17e8ac8f..33f8b021 100644
--- a/src/App/templates/layout/default.html.twig
+++ b/src/App/templates/layout/default.html.twig
@@ -15,6 +15,7 @@
{% block head_links %}{% endblock %}
+