pushword / repurpose
Repurpose a Pushword page into ready-to-post social carousels: an agent-authored JSON spec rendered to self-contained SVG slides, with server-side text layout, focal-point cropping and PNG/PDF export.
Package info
Type:symfony-bundle
pkg:composer/pushword/repurpose
Fund package maintenance!
1.0.13
2026-09-13 15:08 UTC
Requires
- php: ~8.5.0
- ext-gd: *
- ext-zip: *
- pushword/core: *
Requires (Dev)
None
Suggests
- pushword/admin: Manage pages, media and users from an EasyAdmin-based back-office.
- pushword/admin-block-editor: Rich block editor (EditorJS) for the admin.
- pushword/advanced-main-image: Choose the main image format per page, from hidden to full hero.
- pushword/api: Token-authenticated REST API mirroring the admin, OpenAPI-described.
- pushword/conversation: Add comments, a contact form or any user input to your website.
- pushword/docs: Pushword documentation, readable offline from vendor/.
- pushword/flat: Turn Pushword into a flat-file CMS: content as Markdown in Git.
- pushword/link-improver: Automatic internal links: page names become in-content links at render time.
- pushword/newsletter: Audiences, segmented campaigns and criteria-driven automations.
- pushword/page-scanner: Find dead links, 404s, redirects and TODO reminders.
- pushword/page-update-notifier: Get an email when a page is created or edited.
- pushword/quiz: Interactive client-side quizzes (QCM) and personality tests.
- pushword/search: SQLite-native full-text search via Loupe, zero infrastructure.
- pushword/snippet: Reusable content fragments and dev-registered Twig components.
- pushword/static-generator: Export the whole site as static files (GitHub Pages, Apache, FrankenPHP).
- pushword/template-editor: Edit Twig view files online from the admin.
- pushword/version: Keep a version history of your pages and compare revisions.
Provides
None
Conflicts
None
Replaces
None
- dev-main / 1.0.x-dev
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 1.0.0-rc898
- 1.0.0-rc897
- 1.0.0-rc896
- 1.0.0-rc895
- 1.0.0-rc894
- 1.0.0-rc893
- 1.0.0-rc892
- 1.0.0-rc891
- 1.0.0-rc890
- 1.0.0-rc889
- 1.0.0-rc888
- 1.0.0-rc887
- 1.0.0-rc886
- 1.0.0-rc885
- 1.0.0-rc884
- 1.0.0-rc883
- 1.0.0-rc882
- 1.0.0-rc881
- 1.0.0-rc880
- 1.0.0-rc879
- 1.0.0-rc878
- 1.0.0-rc877
- 1.0.0-rc876
- 1.0.0-rc875
- 1.0.0-rc874
- 1.0.0-rc873
- 1.0.0-rc872
- 1.0.0-rc871
- 1.0.0-rc870
- 1.0.0-rc869
- 1.0.0-rc868
- 1.0.0-rc867
- 1.0.0-rc866
- 1.0.0-rc865
- 1.0.0-rc864
- 1.0.0-rc863
- 1.0.0-rc862
- 1.0.0-rc861
- 1.0.0-rc860
- 1.0.0-rc859
- 1.0.0-rc858
- 1.0.0-rc857
- 1.0.0-rc856
- 1.0.0-rc855
- 1.0.0-rc854
- 1.0.0-rc853
- 1.0.0-rc852
- 1.0.0-rc851
- 1.0.0-rc850
- 1.0.0-rc849
- 1.0.0-rc848
- 1.0.0-rc847
- 1.0.0-rc846
- 1.0.0-rc845
- 1.0.0-rc844
- 1.0.0-rc843
- 1.0.0-rc842
- 1.0.0-rc841
- 1.0.0-rc840
- 1.0.0-rc839
- 1.0.0-rc838
- 1.0.0-rc837
- 1.0.0-rc836
- 1.0.0-rc835
- 1.0.0-rc834
- 1.0.0-rc833
- 1.0.0-rc832
- 1.0.0-rc831
- 1.0.0-rc830
- 1.0.0-rc829
- 1.0.0-rc828
- 1.0.0-rc827
- 1.0.0-rc826
- 1.0.0-rc825
- 1.0.0-rc824
- 1.0.0-rc823
- 1.0.0-rc822
- 1.0.0-rc821
- 1.0.0-rc820
- 1.0.0-rc819
- 1.0.0-rc818
- 1.0.0-rc817
- 1.0.0-rc816
- 1.0.0-rc815
- 1.0.0-rc814
- 1.0.0-rc813
- 1.0.0-rc812
- 1.0.0-rc811
- 1.0.0-rc810
- 1.0.0-rc809
- 1.0.0-rc808
- 1.0.0-rc807
- 1.0.0-rc806
- 1.0.0-rc805
- 1.0.0-rc804
- 1.0.0-rc803
- 1.0.0-rc802
- 1.0.0-rc801
- 1.0.0-rc800
- 1.0.0-rc799
- 1.0.0-rc798
- 1.0.0-rc797
- 1.0.0-rc796
- 1.0.0-rc795
- 1.0.0-rc794
- 1.0.0-rc793
- 1.0.0-rc792
- 1.0.0-rc791
- 1.0.0-rc790
- 1.0.0-rc789
- 1.0.0-rc788
- 1.0.0-rc787
- 1.0.0-rc786
- 1.0.0-rc785
- 1.0.0-rc784
- 1.0.0-rc783
- 1.0.0-rc782
- 1.0.0-rc781
- 1.0.0-rc780
- 1.0.0-rc779
- 1.0.0-rc778
- 1.0.0-rc777
- 1.0.0-rc776
- 1.0.0-rc775
- 1.0.0-rc774
- 1.0.0-rc773
- 1.0.0-rc772
- 1.0.0-rc771
- 1.0.0-rc770
- 1.0.0-rc769
- 1.0.0-rc768
- 1.0.0-rc767
- 1.0.0-rc766
- 1.0.0-rc765
- 1.0.0-rc764
- 1.0.0-rc763
- 1.0.0-rc762
- 1.0.0-rc761
- 1.0.0-rc760
- 1.0.0-rc759
- 1.0.0-rc758
- 1.0.0-rc757
- 1.0.0-rc756
This package is auto-updated.
Last update: 2026-09-17 22:22:45 UTC
README
Turn a Pushword page into ready-to-post social posts and carousels (LinkedIn, Instagram, Facebook, Pinterest, …). Pinterest is modelled as an organic image Pin: one 2:3 visual with a required caption.
- Agent-authored JSON spec — a carousel is a small JSON document (slides, text, focal-point crop, palette, font pairing, background effect, status). An AI agent writes it against a published JSON Schema; a human nudges it in the admin.
- Self-contained SVG slides — each slide renders server-side to one portable
SVG with its font and image embedded as
data:URIs. Text is laid out in PHP, so overflow and bad crops become validation errors before anything is rendered. - Pixel-exact export — the browser rasterises the SVG to PNG; PHP assembles a
.zip(PNGs + caption) and, for LinkedIn, a multipage PDF. No headless browser, no npm dependency. - Flat or DB — carousels round-trip through
pw:flat:syncas JSON files, so they live in git on a flat-file site and in the database on a dynamic one.
Installation
composer require pushword/repurpose
Status
Work in progress. See the plan.