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
1 change: 1 addition & 0 deletions src/App/templates/layout/default.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<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