typo3-idea-extension-blog
Idea -> TYPO3 Extension -> Blog Post Pipeline
Turn an external idea into a complete TYPO3 outcome: research, honest assessment, build, Git push, and German MDX publication draft.
Non-Negotiables
- Do not skip source verification. Read the original source, not only summaries.
- Do not oversell. Say plainly when something is hype, vaporware, duplicated, or a poor TYPO3 fit.
- Do not rebuild TYPO3 features that already exist in Core or a mature extension ecosystem.
- Do not ask endless questions. Ask at most 10 focused questions, then move.
- Do not build before the user confirms the concept assessment.
- Do not leave credentials behind after a Git push.
Recommended Skill Stack
Load adjacent skills when they materially improve the result:
grill-me: use this right after the initial source summary to interrogate what the user actually wants to transfer into TYPO3 and to resolve open product decisions one question at a timefirecrawl: fetching the source page, repo pages, and independent coveragetypo3-update: TYPO3 v14-first architecture and API choicestypo3-testing: unit tests and verification structurewebconsulting-create-documentation: help when shaping the MDX deliverable
Workflow
Phase 1: Research & Verify (Do Not Skip)
- Fetch the full article, announcement, or product page with the available web-fetch tooling.
- Verify legitimacy through independent coverage. Search for discussion on news and community sites such as Hacker News, Slashdot, and Phoronix when relevant.
- Check whether the project has a real public codebase. If it claims to be open source, verify that the GitHub or GitLab repository contains actual code and recent activity, not just a README.
- Check whether TYPO3 already solves the problem through Core, a maintained extension, or a proven adjacent pattern.
- Summarize the source for the user in 3-5 sentences before asking anything else.
If the idea is a hoax, April Fools post, abandoned repo, or obvious vaporware, say so immediately and pivot to alternatives.
Phase 2: Clarify What We Actually Want
Start the scoping conversation with grill-me style discipline:
- walk the design tree branch by branch
- ask only one question at a time
- provide a recommended answer with each question
- stop after the scope is clear, not after an arbitrary maximum
Still keep the total question count lean. Ask at most 10 focused questions. Prefer a structured input tool if the client supports it; otherwise ask concise plain-text questions.
Good questions:
- Which ideas are actually worth transferring to TYPO3?
- Should the output include an extension, a blog post, or both?
- Should the extension target headless mode, traditional TYPO3 frontend, or both?
- Should the repo be private or public?
- Is the blog language German? Default to German for webconsulting.at.
Do not ask questions whose answers are already obvious from the user request or local context.
Phase 3: Concept Assessment
Write a concise assessment before building. Cover these five areas:
| Area | What to cover |
|---|---|
| What TYPO3 already does better | Core features, mature extensions, existing APIs, reasons not to reinvent |
| What is genuinely new | Transferable ideas, UX patterns, workflow gains, technical differentiators |
| What is needed first | Dependencies, APIs, legal review, infrastructure, third-party services |
| Honest risks | Regulatory, adoption, maintenance, performance, ecosystem mismatch |
| Recommended architecture | TYPO3 mapping such as PSR-15 middleware, PSR-14 events, TCA, Extbase, CLI commands, site sets |
Present this as a short table or tightly written prose. Then stop and get explicit user confirmation before implementation.
Phase 4: Build the TYPO3 Extension
Build a complete, push-ready TYPO3 extension when the concept passes review.
Repository Shape
Use this structure unless the project clearly needs a smaller variant:
extension-name/
├── composer.json
├── README.md
├── LICENSE
├── .gitignore
├── Configuration/
│ ├── Services.yaml
│ ├── RequestMiddlewares.php
│ ├── TCA/Overrides/
│ ├── Capabilities.yaml
│ └── Sets/
├── src/
│ ├── Middleware/
│ ├── Service/
│ ├── Configuration/
│ ├── Event/
│ ├── Command/
│ └── Domain/Model/
├── Resources/Private/Language/
├── config/
├── ext_tables.sql
├── tests/Unit/
├── phpunit.xml.dist
└── phpstan.neon
Implementation Rules
- Target TYPO3 v14 first, with TYPO3 13.4 fallback where reasonable.
- Use
declare(strict_types=1);everywhere. - Require PHP 8.2+.
- Use Composer type
typo3-cms-extension. - Use PSR-4 autoloading under
Webconsulting\{ExtensionName}\. - Prefer Symfony DI in
Configuration/Services.yaml. - Use PSR-15 for middleware and PSR-14 for events.
- Avoid legacy patterns such as
$GLOBALS['TYPO3_DB'], hard dependencies onext_emconf.php, and old signal-slot patterns. - Always include
Configuration/Capabilities.yamland keep it honest. - Add unit tests for value objects, configuration parsing, and core decision logic.
Architecture Choices
Choose the lightest TYPO3-native shape that solves the problem:
- use middleware for request/response concerns, headers, gateways, and protocol adapters
- use Extbase only when you truly benefit from controller and domain modeling
- use TCA overrides and site sets when the main value is editor-facing configuration
- use CLI commands with
#[AsCommand]for imports, sync jobs, and batch tasks - prefer existing TYPO3 APIs before inventing custom persistence or routing layers
Phase 5: Push to GitHub
If the user wants the extension pushed:
- Confirm the user already created the empty repository manually when API-based repo creation is blocked.
- Configure git remote and authentication only for the duration needed.
- Commit with a descriptive message.
- Push to
main. - Remove stored credentials immediately after the push.
Never leave tokens in shell history, committed files, examples, or config templates.
Phase 6: Write the Blog Post
Create a publication-ready MDX post for webconsulting.at.
Writing Rules
- Language: German by default
- Tone: factual, professional, technically honest
- Gender-neutral language: use colon format such as
Nutzer:innen - Translate features into practical benefits
- Avoid marketing filler and empty superlatives
Required Frontmatter
Include:
datetitledescriptionauthorset toKurt Dirnbauerstatuscategorieslang
Required Sections
Auf einen Blickwith 4-6 bullets- Introduction with 2-3 short paragraphs
- Technical explanation
- TYPO3 implementation
- Honest assessment with a warning-style callout
- Installation and usage with copy-paste-ready commands
- Roadmap using a timeline component
Fazitwith a CTA to/kontakt
MDX Components
Use components only where they clarify the article:
TabsandTabDataTableComparisonTableCalloutAccordionTimelineTechResourceCallout- fenced code blocks with language labels
- Mermaid diagrams for architecture and flow
Always include a TechResourceCallout pointing to the GitHub repository when one exists.
Phase 7: Deliver
At the end:
- Push the extension when requested.
- Present or save the MDX file in a way the user can open directly.
- Confirm credentials were cleaned up.
- Provide a 5-line summary of what was delivered.
Decision Framework
| Signal | Action |
|---|---|
| Real idea, verified, good TYPO3 mapping | Build extension and blog post |
| Real idea, useful analysis, weak TYPO3 mapping | Write blog post only |
| Hoax, April Fools, or empty hype | Say so and suggest alternatives |
| Already solved well in TYPO3 | Point to the existing solution instead of rebuilding |
| Requires language/runtime changes TYPO3 cannot realistically absorb | Document concept only, no extension build |
Quality Checklist
Before delivering, verify:
- extension installs via Composer without obvious constraint errors
- all PHP files use strict types
Services.yamlwires the real services- at least 5 unit tests cover core logic
README.mdexplains install, config, usage, and architectureCapabilities.yamlexists and is honest- the blog post includes
Auf einen Blick, honest assessment,TechResourceCallout, andTimeline - German copy uses gender-neutral colon format
- no credentials remain on disk after push
- no hardcoded tokens, API keys, or sensitive values remain in the repo
Example Prompts
- "Evaluate this product launch for TYPO3, build the extension if it makes sense, and draft the German blog post."
- "Read this article, tell me honestly whether it is relevant for TYPO3, and turn the good parts into a prototype extension."
- "Adapt this startup idea to TYPO3 and prepare both the repo and the webconsulting.at MDX article."