PHPackages                             semitexa/ssr - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. semitexa/ssr

ActiveSemitexa-module[Templating &amp; Views](/categories/templating)

semitexa/ssr
============

Semitexa SSR - Twig-based server rendering with components, layouts, assets, and deferred slots

2026.04.03.1240(1mo ago)0544MITPHPPHP ^8.4

Since Dec 27Pushed 2mo agoCompare

[ Source](https://github.com/semitexa/semitexa-ssr)[ Packagist](https://packagist.org/packages/semitexa/ssr)[ RSS](/packages/semitexa-ssr/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (7)Versions (33)Used By (4)

Semitexa Core Frontend
======================

[](#semitexa-core-frontend)

> **Philosophy &amp; ideology** — [Why Semitexa: vision and principles](../semitexa-docs/README.md). The detailed, technical documentation for this package is below.

Server-side rendering for Semitexa using Twig: layouts, slots, and HTML response handling.

Installation
------------

[](#installation)

```
composer require semitexa/ssr
```

What's inside
-------------

[](#whats-inside)

- **LayoutRenderer** — Renders response content into a layout template (e.g. one-column, two-column)
- **Twig** — Twig integration; templates under `Application/View/templates/` in your modules
- **Layout slots** — `#[AsLayoutSlot]` + `layout_slot('slotname')`; handle `*` (global), layout frame, or page handle
- **Theme override** — `src/theme/{ModuleName}/` overrides module templates (same path)
- **HtmlResponse** — Response type for HTML pages

Slots
-----

[](#slots)

In layout templates: `{{ layout_slot('nav') }}`, `{{ layout_slot('header') }}`, etc. Register with `#[AsLayoutSlot(handle: '*', slot: 'nav', template: '...', priority: 0)]`. Use handle `'*'` for every page, or a layout name / page handle for scoped slots. Optional: `$response->setLayoutFrame('one-column')` so layout-level slots apply.

Theme override
--------------

[](#theme-override)

- **With THEME in .env:** Put overrides in `src/theme/{THEME}/{ModuleName}/` (e.g. `src/theme/default/Website/one-column.html.twig`). Set `THEME=default` in `.env` to activate. Twig loads theme paths first, so these override the module’s templates.
- **Legacy (THEME empty):** Use `src/theme/{ModuleName}/` (e.g. `src/theme/Website/one-column.html.twig`) to override that module’s templates. Works for any module that has layout templates.

Use this package when you build HTML pages (not just JSON API). See **semitexa/docs** (e.g. AI\_REFERENCE, RECOMMENDED\_STACK) and [core/docs/ADDING\_ROUTES.md](../semitexa-core/docs/ADDING_ROUTES.md) for the “Responses: JSON and HTML pages” section.

###  Health Score

47

—

FairBetter than 94% of packages

Maintenance89

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 78.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

29

Last Release

46d ago

Major Versions

1.0.33 → 2026.04.03.12402026-04-03

### Community

Maintainers

![](https://www.gravatar.com/avatar/e94044da9f4c76cc5cd09ef0c693a68065787e10d0d18edfeedbef3573a9163a?d=identicon)[syntaxwanderer](/maintainers/syntaxwanderer)

---

Top Contributors

[![syntaxwanderer](https://avatars.githubusercontent.com/u/1311643?v=4)](https://github.com/syntaxwanderer "syntaxwanderer (70 commits)")[![goosyboosy](https://avatars.githubusercontent.com/u/13351014?v=4)](https://github.com/goosyboosy "goosyboosy (15 commits)")[![needalicense](https://avatars.githubusercontent.com/u/13330467?v=4)](https://github.com/needalicense "needalicense (4 commits)")

---

Tags

b2bbackenddistributed-systemshigh-performancemodular-architecturemulti-tenancyphpsemitexasemitexa-ssrseo-friendlyssrswooletenant-isolationtwigtwigcomponentsfrontendSSRdeferredRenderinglayoutssemitexa

### Embed Badge

![Health badge](/badges/semitexa-ssr/health.svg)

```
[![Health](https://phpackages.com/badges/semitexa-ssr/health.svg)](https://phpackages.com/packages/semitexa-ssr)
```

###  Alternatives

[twig/extra-bundle

A Symfony bundle for extra Twig extensions

91492.0M315](/packages/twig-extra-bundle)[symfony/ux-twig-component

Twig components for Symfony

21914.8M162](/packages/symfony-ux-twig-component)[twig/intl-extra

A Twig extension for Intl

36763.2M221](/packages/twig-intl-extra)[symfony/ux-live-component

Live components for Symfony

1635.6M72](/packages/symfony-ux-live-component)[rcrowe/twigbridge

Adds the power of Twig to Laravel

9105.9M50](/packages/rcrowe-twigbridge)[twig/string-extra

A Twig extension for Symfony String

22046.0M133](/packages/twig-string-extra)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
