Search by

netresearch / nr-landingpage

netresearch

TYPO3 Landing Page Generator powered by LLM

Package info

github.com/netresearch/nr-landingpage

Type:typo3-cms-extension

pkg:composer/netresearch/nr-landingpage

Statistics

Installs: 1 869

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 3

v0.3.16 2026-09-29 23:22 UTC

README

TYPO3 Landing Page Generator (nr_landingpage)

A TYPO3 extension that generates landing pages via LLM using an interactive step-by-step backend wizard. Editors select a template, answer optional briefing questions, review AI-generated content, and publish -- all without leaving the TYPO3 backend.

Requirements

Dependency Version
PHP ^8.2
TYPO3 13.4 LTS / 14.3 LTS
netresearch/nr-llm >=0.34 <0.39

Installation

composer require netresearch/nr-landingpage

Activate the extension in the TYPO3 Extension Manager or via CLI:

vendor/bin/typo3 extension:activate nr_landingpage

Configuration

Templates

Templates are managed as TCA records (tx_nrlandingpage_domain_model_template) and define:

  • Title / Identifier -- human-readable name and machine identifier
  • System Prompt -- the LLM prompt used for content generation
  • Allowed CTypes -- which content element types the template may produce
  • Page Fields -- which page-level fields (e.g. og:title, description) are generated
  • Reference Pages -- existing pages named as references; the prompt optimizer lists their UIDs in its request, and their content is not sent to the LLM
  • Briefing Mode -- required, optional, or none
  • Publish Mode -- whether pages are created hidden or visible
  • Backend User Groups -- restrict template visibility to specific groups

LLM Configuration

The extension relies on netresearch/nr-llm for LLM interaction. Configure your LLM backend (OpenAI, Azure OpenAI, etc.) according to the nr-llm documentation. Each template can optionally reference a specific LLM configuration record.

Usage

Wizard Steps

  1. Template Selection -- choose from available landing page templates
  2. Briefing -- answer LLM-generated questions to guide content creation (optional/required per template)
  3. Page Fields -- review and edit generated SEO and meta fields
  4. Content Preview -- review generated content sections; regenerate individual sections as needed
  5. Placement & Save -- choose parent page, set title/slug, and create the landing page

Context Menu

Right-click any page in the page tree and select "Create Landing Page" to launch the wizard with that page pre-selected as the parent.

PSR-14 Events

The extension dispatches events that allow customization:

  • BeforePageCreationEvent -- modify page data before the page record is written
  • AfterContentGenerationEvent -- react after the page and its content elements were created (receives the template, the page UID and the content element UIDs)

Development

Setup

git clone <repository-url>
composer install

Local TYPO3 Environment (DDEV)

A DDEV configuration is included for local development with a full TYPO3 installation:

ddev start
ddev install-v14

This installs TYPO3 v14 with the extension and all dependencies (including nr-llm and nr-vault via Composer).

Traefik users: If ports 80/443 are already in use (e.g. by an external Traefik proxy), DDEV will fall back to alternate ports. You can disable the DDEV router globally (router: none in ~/.ddev/global_config.yaml) and route traffic through your existing Traefik by adding the traefik network and labels to .ddev/docker-compose.web.yaml. See the DDEV documentation on router configuration.

Quality Checks

# Run all checks
composer ci

# Individual checks
composer ci:phpstan      # PHPStan Level 10
composer ci:cgl          # PHP-CS-Fixer (dry-run)
composer ci:tests        # PHPUnit (unit + architecture tests)

# Fix code style
composer fix:cgl

Test Suites

Suite Directory Description
unit Tests/Unit/ Unit tests (mocked services)
functional Tests/Functional/ Functional tests (TYPO3 framework)
architecture Tests/Architecture/ phpat layer dependency tests
e2e Tests/E2E/ Playwright E2E tests (17, run in CI)

E2E Tests (Playwright)

The suite runs in CI on every pull request via the shared workflow. Locally, from the repository root:

npm ci
npx playwright install chromium
npx playwright test

The npm manifest and playwright.config.ts live at the root because the shared workflow runs npm there; the specs stay in Tests/E2E/, which testDir points at.

Requires a running TYPO3 instance. Set TYPO3_BASE_URL to override the default https://nr-landingpage.ddev.site.

Architecture

Classes/
  Controller/Backend/    Wizard controller (AJAX endpoints)
  ContextMenu/           Page tree context menu provider
  Domain/Model/          Template value object
  Event/                 PSR-14 events
  Service/               Business logic (Template, Briefing, ContentGenerator, ImageSearch, PageCreator)
Configuration/
  Backend/               Module + AJAX route registration
  TCA/                   Template TCA
Resources/
  Public/JavaScript/     ES6 wizard modules
Tests/
  Unit/                  PHPUnit unit tests
  Architecture/          phpat architecture tests
  E2E/                   Playwright E2E test skeleton

Security and Architecture

docs/SECURITY-ASSURANCE.md describes the actors, components and data flows, what the extension guarantees in terms of security and where its limits are. Report vulnerabilities as described in the Netresearch security policy.

Contributing

See CONTRIBUTING.md for guidelines.

License

GPL-2.0-or-later. See LICENSE.