Find your missing feature with a Pushword Extension
- Admin Manage pages, media and users through an EasyAdmin interface.
- API Manage pages and redirections through a token-authenticated API with an OpenAPI schema.
- Admin Block Editor Edit rich content as blocks while storing Markdown.
- Advanced Main Image Choose how each page’s main image is rendered, from hidden to a full hero.
- Conversation Add comments, contact forms and other user input.
- Flat Sync pages and media between the database and flat files.
- Link Improver Add bounded, auditable internal links at render time without changing source content.
- Newsletter Manage consent, audiences, segmented campaigns and event-driven mail sequences.
- Page Scanner Find broken links, redirects and TODO reminders from the command line or admin.
- Page Update Notifier Send an email when a page changes.
- Quiz Build SEO-rendered quizzes and personality tests with an optional conversion form.
- Repurpose Render validated social carousel specs as SVG, PNG or PDF.
- Search Add typo-tolerant full-text search backed by a rebuildable SQLite index.
- Snippet Render reusable content fragments and developer-registered components.
- Static Generator Export a site for GitHub Pages, Apache, FrankenPHP or Caddy.
- Page Cache Pre-render pages for the web server while keeping dynamic routes in the app.
- Template Editor Edit Twig templates from the admin.
- Version Keep, compare and restore page revisions.
To list a maintained third-party extension, edit this page on GitHub.
Extension points
- Events: core and admin event names are constants in
Pushword\Core\Event\PushwordEvents (examples: Admin Menu, Pages List Search). Extension events are dispatched by class — listen to the class itself, e.g. Pushword\StaticGenerator\Event\StaticPreGenerateEvent. - Entity filters: Implement
Pushword\Core\Component\EntityFilter\Filter\FilterInterface and add the #[Pushword\Core\Component\EntityFilter\Attribute\AsFilter] attribute, which tags the service pushword.entity_filter. - Newsletter trigger sources: Implement
Pushword\Newsletter\Trigger\TriggerSource and tag it pushword.newsletter.trigger_source to start a mail sequence from anything your app watches — see Newsletter.