diff --git a/config/autoload/local.php.dist b/config/autoload/local.php.dist index dc806a8..af7e53e 100644 --- a/config/autoload/local.php.dist +++ b/config/autoload/local.php.dist @@ -34,7 +34,7 @@ $app = [ 'title' => 'Dotkernel | Headless Platform for modern web application', 'description' => 'Dotkernel is a Headless Platform for building modern web applications ' . 'using a collection of applications (skeletons).', - 'image' => $baseUrl . '/uploads/opengraph/dotkernel.png', + 'image' => $baseUrl . '/opengraph/dotkernel.png', 'type' => 'website', 'siteName' => 'Dotkernel', 'locale' => 'en_US', diff --git a/public/opengraph/dotkernel.png b/public/opengraph/dotkernel.png index c0dcfd2..c83be26 100644 Binary files a/public/opengraph/dotkernel.png and b/public/opengraph/dotkernel.png differ diff --git a/public/opengraph/pages/twitter-card-about-dk.com.png b/public/opengraph/pages/twitter-card-about-dk.com.png new file mode 100644 index 0000000..2134d10 Binary files /dev/null and b/public/opengraph/pages/twitter-card-about-dk.com.png differ diff --git a/public/opengraph/pages/twitter-card-admin.png b/public/opengraph/pages/twitter-card-admin.png new file mode 100644 index 0000000..e9f886c Binary files /dev/null and b/public/opengraph/pages/twitter-card-admin.png differ diff --git a/public/opengraph/pages/twitter-card-api.png b/public/opengraph/pages/twitter-card-api.png new file mode 100644 index 0000000..f5be4b0 Binary files /dev/null and b/public/opengraph/pages/twitter-card-api.png differ diff --git a/public/opengraph/pages/twitter-card-architecture.png b/public/opengraph/pages/twitter-card-architecture.png new file mode 100644 index 0000000..e2e9a52 Binary files /dev/null and b/public/opengraph/pages/twitter-card-architecture.png differ diff --git a/public/opengraph/pages/twitter-card-development.png b/public/opengraph/pages/twitter-card-development.png new file mode 100644 index 0000000..54b579c Binary files /dev/null and b/public/opengraph/pages/twitter-card-development.png differ diff --git a/public/opengraph/pages/twitter-card-dotboost.png b/public/opengraph/pages/twitter-card-dotboost.png new file mode 100644 index 0000000..1e61be4 Binary files /dev/null and b/public/opengraph/pages/twitter-card-dotboost.png differ diff --git a/public/opengraph/pages/twitter-card-frontend.png b/public/opengraph/pages/twitter-card-frontend.png new file mode 100644 index 0000000..3ca523b Binary files /dev/null and b/public/opengraph/pages/twitter-card-frontend.png differ diff --git a/public/opengraph/pages/twitter-card-light.png b/public/opengraph/pages/twitter-card-light.png new file mode 100644 index 0000000..1d5e451 Binary files /dev/null and b/public/opengraph/pages/twitter-card-light.png differ diff --git a/public/opengraph/pages/twitter-card-queue.png b/public/opengraph/pages/twitter-card-queue.png new file mode 100644 index 0000000..7488a08 Binary files /dev/null and b/public/opengraph/pages/twitter-card-queue.png differ diff --git a/public/opengraph/pages/twitter-card-wsl2.png b/public/opengraph/pages/twitter-card-wsl2.png new file mode 100644 index 0000000..cf6aee2 Binary files /dev/null and b/public/opengraph/pages/twitter-card-wsl2.png differ diff --git a/src/App/templates/app/index.html.twig b/src/App/templates/app/index.html.twig index 6854edf..afe1502 100644 --- a/src/App/templates/app/index.html.twig +++ b/src/App/templates/app/index.html.twig @@ -71,7 +71,7 @@
- + One domain, three deployables

One domain, three deployables

diff --git a/src/App/templates/partial/meta.html.twig b/src/App/templates/partial/meta.html.twig index 8ccf73b..138c52b 100644 --- a/src/App/templates/partial/meta.html.twig +++ b/src/App/templates/partial/meta.html.twig @@ -5,7 +5,7 @@ {{ meta.title ?? meta.name ?? app.meta.title }} - + @@ -16,4 +16,4 @@ - + diff --git a/src/Page/templates/page/about.html.twig b/src/Page/templates/page/about.html.twig index af48e74..2dd8620 100644 --- a/src/Page/templates/page/about.html.twig +++ b/src/Page/templates/page/about.html.twig @@ -5,6 +5,7 @@ title: 'About us | The team behind Dotkernel', description: 'Dotkernel is built by the dev team at Apidemia - a team that reviews every change together, ' ~ 'gives its work back to the PHP community under MIT, and puts guardrails around the tools it adopts.', + openGraphImage: '/opengraph/pages/twitter-card-about-dk.com.png', } %} {% block title %}About Us{% endblock %} @@ -93,28 +94,6 @@ -
-
-
One team, one codebase
- - - - - - - - - - - - - - - - - -
-
diff --git a/src/Page/templates/page/admin.html.twig b/src/Page/templates/page/admin.html.twig index c991de6..3a63002 100644 --- a/src/Page/templates/page/admin.html.twig +++ b/src/Page/templates/page/admin.html.twig @@ -5,6 +5,7 @@ title: 'Dotkernel Admin | Open-source PHP admin application', description: 'Dotkernel Admin is an open-source admin application (skeleton) built on Mezzio, Laminas and Doctrine. ' ~ 'Table-based record management, RBAC guards, CSRF-protected forms and 2FA, over the same Core as Dotkernel API.', + openGraphImage: '/opengraph/pages/twitter-card-admin.png', } %} {% block title %}Dotkernel Admin{% endblock %} diff --git a/src/Page/templates/page/api.html.twig b/src/Page/templates/page/api.html.twig index ccbb565..23b6e87 100644 --- a/src/Page/templates/page/api.html.twig +++ b/src/Page/templates/page/api.html.twig @@ -5,6 +5,7 @@ title: 'Dotkernel API | Open-source REST API skeleton for PHP', description: 'Dotkernel API is an open-source REST API skeleton built on Mezzio, Laminas and Doctrine. ' ~ 'OAuth2, RBAC, HAL, problem details and OpenAPI 3.0 come wired together on install. MIT licensed.', + openGraphImage: '/opengraph/pages/twitter-card-api.png', } %} {% block title %}Dotkernel API{% endblock %} diff --git a/src/Page/templates/page/architecture.html.twig b/src/Page/templates/page/architecture.html.twig index 0b988c6..1daac2f 100644 --- a/src/Page/templates/page/architecture.html.twig +++ b/src/Page/templates/page/architecture.html.twig @@ -5,6 +5,7 @@ title: 'Architecture | How a request moves through a Dotkernel application', description: 'The PSR-15 middleware pipeline behind Dotkernel API, stage by stage: error boundary, routing, ' ~ 'content negotiation, deprecation headers, OAuth 2.0, RBAC and dispatch - plus the library flow underneath it.', + openGraphImage: '/opengraph/pages/twitter-card-architecture.png', } %} {% block title %}Architecture{% endblock %} @@ -116,41 +117,6 @@ -
-
-
Nineteen stages, folded
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
diff --git a/src/Page/templates/page/dotboost.html.twig b/src/Page/templates/page/dotboost.html.twig index da0eaa9..f978be1 100644 --- a/src/Page/templates/page/dotboost.html.twig +++ b/src/Page/templates/page/dotboost.html.twig @@ -5,6 +5,7 @@ title: 'dotboost | Claude Code configuration for Dotkernel projects', description: 'dotboost is a drop-in .claude/ directory that teaches Claude Code the conventions of any Dotkernel ' ~ 'application - ten commands, seventeen skills, six hooks, and permission guardrails that keep secrets out of the context.', + openGraphImage: '/opengraph/pages/twitter-card-dotboost.png', } %} {% block title %}dotboost{% endblock %} diff --git a/src/Page/templates/page/frontend.html.twig b/src/Page/templates/page/frontend.html.twig index ad180fa..9c9c342 100644 --- a/src/Page/templates/page/frontend.html.twig +++ b/src/Page/templates/page/frontend.html.twig @@ -5,6 +5,7 @@ title: 'Dotkernel Frontend | Server-rendered PHP web starter', description: 'Dotkernel Frontend is a web starter skeleton on Mezzio and Laminas - user accounts, a contact form, ' ~ 'RBAC guards, CSRF-protected forms, flash messages and GDPR account anonymization, server-rendered in Twig.', + openGraphImage: '/opengraph/pages/twitter-card-frontend.png', } %} {% block title %}Dotkernel Frontend{% endblock %} diff --git a/src/Page/templates/page/light.html.twig b/src/Page/templates/page/light.html.twig index 28cdfbd..c2896ff 100644 --- a/src/Page/templates/page/light.html.twig +++ b/src/Page/templates/page/light.html.twig @@ -5,6 +5,7 @@ title: 'Dotkernel Light | Minimal PSR-15 site skeleton for PHP', description: 'Dotkernel Light is a minimal PSR-15 application skeleton on Mezzio and Laminas, for presentation ' ~ 'sites and small services. Six direct dependencies, Twig templating, Vite assets, no database layer.', + openGraphImage: '/opengraph/pages/twitter-card-light.png', } %} {% block title %}Dotkernel Light{% endblock %} diff --git a/src/Page/templates/page/queue.html.twig b/src/Page/templates/page/queue.html.twig index b8b43bb..39f2fc9 100644 --- a/src/Page/templates/page/queue.html.twig +++ b/src/Page/templates/page/queue.html.twig @@ -5,6 +5,7 @@ title: 'Dotkernel Queue | Asynchronous task queue for PHP', description: 'Dotkernel Queue runs time-consuming work on background workers instead of inside the request cycle. ' ~ 'A Swoole TCP daemon, Valkey streams and Symfony Messenger, with retries, a dead letter queue and reporting commands.', + openGraphImage: '/opengraph/pages/twitter-card-queue.png', } %} {% block title %}Dotkernel Queue{% endblock %} diff --git a/src/Page/templates/page/wsl2.html.twig b/src/Page/templates/page/wsl2.html.twig index 4a26406..686eec5 100644 --- a/src/Page/templates/page/wsl2.html.twig +++ b/src/Page/templates/page/wsl2.html.twig @@ -5,6 +5,7 @@ title: 'Development Environment | AlmaLinux 10 on WSL 2', description: 'AlmaLinux 10 on WSL 2 for a RHEL-compatible local stack. One Ansible playbook installs PHP, Apache, ' ~ 'MariaDB, Composer, Node.js and phpMyAdmin, and provisions a virtualhost for every project you add.', + openGraphImage: '/opengraph/pages/twitter-card-wsl2.png', } %} {% block title %}Development Environment{% endblock %}