Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 19 additions & 4 deletions public/md-articles/index.md → public/md-pages/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
---
Expand Down Expand Up @@ -55,18 +61,27 @@ 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

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)

Expand Down
1 change: 1 addition & 0 deletions src/App/templates/app/index.html.twig
Original file line number Diff line number Diff line change
@@ -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 %}<link rel="alternate" type="text/markdown" href="/md-pages/index.md">{% endblock %}

{% block content %}

Expand Down
4 changes: 4 additions & 0 deletions src/App/templates/layout/blog-post.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

{% block title %}{{ article.title }}{% endblock %}

{% block head_links %}
<link rel="alternate" type="text/markdown" href="{{ url('app::markdown-article', {categorySlug: article.category.slug, slug: article.slug}) }}">
{% endblock %}

{% block page_title %}
{{ include('@partial/title-section.html.twig', {
back_href: url('page::blog'),
Expand Down
2 changes: 2 additions & 0 deletions src/App/templates/layout/default.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
<link rel="icon" type="image/png" sizes="32x32" href="{{ asset('images/app/favicon/favicon-32x32.png') }}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ asset('images/app/favicon/favicon-16x16.png') }}">
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="{{ url('app::feed') }}" />
{% block head_links %}{% endblock %}

<link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600" rel="stylesheet">
Expand Down
2 changes: 2 additions & 0 deletions src/Page/templates/page/about.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

{% block title %}About Us{% endblock %}

{% block head_links %}<link rel="alternate" type="text/markdown" href="/md-pages/about.md">{% endblock %}

{% block stylesheets %}
<style>
/* Pyramid layout in the hero - scoped to this page. */
Expand Down
2 changes: 2 additions & 0 deletions src/Page/templates/page/admin.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

{% block title %}Dotkernel Admin{% endblock %}

{% block head_links %}<link rel="alternate" type="text/markdown" href="/md-pages/admin.md">{% endblock %}

{% block stylesheets %}
<style>
/* Requirements table - scoped to this page, uses the shared theme tokens. */
Expand Down
2 changes: 2 additions & 0 deletions src/Page/templates/page/api.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

{% block title %}Dotkernel API{% endblock %}

{% block head_links %}<link rel="alternate" type="text/markdown" href="/md-pages/api.md">{% endblock %}

{% block stylesheets %}
<style>
/* Comparison table - scoped to this page, uses the shared theme tokens. */
Expand Down
2 changes: 2 additions & 0 deletions src/Page/templates/page/architecture.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

{% block title %}Architecture{% endblock %}

{% block head_links %}<link rel="alternate" type="text/markdown" href="/md-pages/architecture.md">{% endblock %}

{% block stylesheets %}
<style>
/* Middleware and library flow diagrams - scoped to this page, uses the shared theme tokens. */
Expand Down
2 changes: 2 additions & 0 deletions src/Page/templates/page/dotboost.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

{% block title %}dotboost{% endblock %}

{% block head_links %}<link rel="alternate" type="text/markdown" href="/md-pages/dotboost.md">{% endblock %}

{% block stylesheets %}
<style>
/* Command, skill and guardrail tables - scoped to this page, uses the shared theme tokens. */
Expand Down
2 changes: 2 additions & 0 deletions src/Page/templates/page/frontend.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

{% block title %}Dotkernel Frontend{% endblock %}

{% block head_links %}<link rel="alternate" type="text/markdown" href="/md-pages/frontend.md">{% endblock %}

{% block stylesheets %}
<style>
/* Requirement and reference tables - scoped to this page, uses the shared theme tokens. */
Expand Down
2 changes: 2 additions & 0 deletions src/Page/templates/page/light.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

{% block title %}Dotkernel Light{% endblock %}

{% block head_links %}<link rel="alternate" type="text/markdown" href="/md-pages/light.md">{% endblock %}

{% block stylesheets %}
<style>
/* Lifecycle and requirement tables - scoped to this page, uses the shared theme tokens. */
Expand Down
2 changes: 2 additions & 0 deletions src/Page/templates/page/queue.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

{% block title %}Dotkernel Queue{% endblock %}

{% block head_links %}<link rel="alternate" type="text/markdown" href="/md-pages/queue.md">{% endblock %}

{% block stylesheets %}
<style>
/* Config and command tables - scoped to this page, uses the shared theme tokens. */
Expand Down
2 changes: 2 additions & 0 deletions src/Page/templates/page/wsl2.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

{% block title %}Development Environment{% endblock %}

{% block head_links %}<link rel="alternate" type="text/markdown" href="/md-pages/wsl2.md">{% endblock %}

{% block stylesheets %}
<style>
/* Requirement and provisioning tables - scoped to this page, uses the shared theme tokens. */
Expand Down