A blog extension for TYPO3 built entirely on core concepts — pages as posts, content elements for article bodies, and categories/tags for organization. If you know TYPO3, you already know how to use this blog.
Upgrading a sitepackage from a previous version? The
renderPluginsection in the shipped templates moved tott_content.{listType}.20for TYPO3 v14 workspace safety. See Development: Template migration notes for the rationale and the one-line template change.
| Blog Extension | TYPO3 | PHP |
|---|---|---|
| 14.x | 14.x | >= 8.2 |
- Pages as blog posts — Blog entries are pages with a dedicated page type (doktype 137). Create and manage them in the page module like any other page.
- All content elements — Use every content element and backend layout you already have. No proprietary content model.
- Categories and tags — Organize posts with TYPO3 system categories and custom tags. Filter and list by category, tag, author, or date.
- Authors — Multi-author support with avatars (Gravatar or uploaded image), social links, bio, and dedicated author pages.
- Comments — Built-in comment system with moderation workflow (pending/approved/declined), Google reCAPTCHA support, and email notifications.
- Workspace support — Full TYPO3 Workspaces integration. Stage blog posts, tags, and authors before publishing. Comments remain live-editable.
- 20+ plugins — List posts, sidebar, archive, related posts, header/footer, comment form, and widget plugins — all usable as standalone content elements.
- 3 backend modules — Dedicated modules for post overview, comment management, and blog setup wizard.
- Customizable templates — Fluid-based templates. Override any template in your sitepackage.
- RSS feeds — Built-in feed support with featured images.
- Routing — Ships with frontend route enhancers for clean URLs.
- SEO — Structured data, meta tags, and social sharing support.
composer require t3g/blogThen add the Blog site set to your site configuration.
For detailed setup instructions, see the documentation. For local contribution and testing, see the development guide.
- Install via Composer
- Go to Blog > Setup in the TYPO3 backend
- Use the Setup Wizard to create a fully configured blog instance
- Start writing posts
For manual integration into an existing site, see the Manual Setup guide.
The extension supports TYPO3 Workspaces for editorial staging workflows:
| Table | Behavior |
|---|---|
| Blog posts (pages) | Fully versioned |
| Tags | Fully versioned |
| Authors | Fully versioned |
| Comments | Always live-editable |
| Categories | Fully versioned (core) |
See the Workspace documentation for details.
The repository no longer ships a tracked DDEV setup. Use any local TYPO3 v14 environment with PHP 8.2+, MySQL or MariaDB, Composer, and Node.js.
# Install dependencies
composer update
npm ci
# Build frontend assets
npm run build
# Run PHP test suites
composer test:php:lint
composer test:php:unit
composer test:php:functional
# Static analysis
composer phpstan
# Code style
composer cgl
composer cgl:fixThe functional test runner defaults to a local MySQL or MariaDB instance on
127.0.0.1:3306 with database t3func and credentials root / root.
Override those variables when your setup differs:
export typo3DatabaseHost=127.0.0.1
export typo3DatabasePort=3306
export typo3DatabaseName=t3func
export typo3DatabaseUsername=root
export typo3DatabasePassword=root
export typo3DatabaseDriver=mysqli
composer test:php:functionalPlaywright smoke tests target any running TYPO3 instance and are not tied to a specific local stack:
export BLOG_BASE_URL=https://example.test
export BLOG_LIST_PATH=/blog1/
export BLOG_POST_PATH=/blog1/first-blog-post
npm run playwright:install
npm run test:e2e- Report bugs and request features on GitHub
- Join
#t3g-ext-blogon TYPO3 Slack - Pull requests welcome — fork, branch, and submit
GPL-2.0-or-later. See LICENSE for details.