=== Postquarry ===
Contributors: gopalbogati
Tags: social media, auto post, content repurposing, social media scheduler, newsletter
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.2
Stable tag: 1.0.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Repurpose blog posts into social media content and auto post it. Threads, LinkedIn, captions, newsletters. No AI account, no API key, no monthly fee.

== Description ==

You already wrote the hard part. Postquarry is a content repurposing plugin that reads a blog post you have published and writes the rest of the week from it: an X thread, a LinkedIn post, an Instagram caption, a Facebook post, an email newsletter, a key takeaways recap, a TL;DR, an FAQ block with schema, quote cards, a carousel script and a short video script.

Then it schedules them and auto posts them to your social media accounts through the automation tool you already use.

https://youtu.be/gyqbFULyRYs

= The part that makes it different =

**There is no AI service behind this plugin.** No OpenAI key, no Claude key, no monthly credits, no per-post cost, and nothing about your content is sent to a third party to be processed. The whole engine is PHP running on your own server.

It works by reading the post properly rather than guessing:

* **TextRank** ranks every sentence by how central it is to the article, the same graph method used in academic summarisation.
* **Key phrase extraction** finds what the post is actually about, weighting the title and headings.
* **Extractive compression** shortens a sentence to fit a character limit by dropping discourse openers, parentheticals and trailing subordinate clauses, in that order, before it will ever cut a sentence mid-thought.
* **Deduplication** stops a slice repeating the same point twice in different words.
* **A hook library** of 81 openers across 15 angles supplies the first line, chosen from the strongest tier and seeded from the post so two posts never open the same way.

Because it is deterministic, the same post always produces the same slices. The preview is what gets published.

= Voice matching, honestly explained =

Postquarry reads posts you have already published and measures how you write: average sentence length, whether you use contractions, whether you address the reader as "you", how often you ask questions, whether you use emoji, and your typical reading ease. Those measurements are then enforced on every slice.

It is your own numbers applied to your own words. It is not a model imitating you, and the plugin does not claim otherwise.

= A readiness score you can argue with =

Every slice gets a score out of 100 with the full breakdown shown: hook strength, first line length, length fit for the platform, reading ease, whether there is a number in it, whether it is skimmable, whether it asks for anything, and hashtag discipline. Each lost point comes with a specific fix.

It is a transparent rubric, not a prediction. No plugin can tell you what will go viral, and this one does not pretend to.

= Getting it out of WordPress =

Postquarry never asks for your social passwords and never asks you to register a developer app. A finished slice leaves your site one of four ways:

1. **Copy it yourself.** One button, straight to the clipboard.
2. **A private RSS feed per platform.** Point Zapier, Make, IFTTT, n8n or Buffer at the URL and anything you queue is picked up automatically.
3. **A webhook.** Postquarry POSTs the slice as JSON to any URL you configure, optionally signed with a shared secret.
4. **Back to your own site.** Recaps and FAQ blocks can be published here as posts, with a canonical link to the original and an optional noindex so they never compete with it in search.

= Automation =

Turn on automatic slicing and every post you publish is sliced in the background, saved to the library, and optionally queued across the days and times you choose, with a minimum gap between posts.

= What it does for your SEO =

Two of the twelve formats are worth more inside the original post than they are on a social feed, so Postquarry can write them straight back into it:

* **Meta descriptions.** The TL;DR format produces a description trimmed to the length search engines actually show. One button writes it into Yoast SEO, Rank Math, SEOPress, The SEO Framework or All in One SEO, whichever you run, and keeps its own copy so the work survives a change of SEO plugin.
* **FAQ rich results.** The FAQ format finds the questions your post already answers, builds the block, and adds it to the post with valid FAQPage schema. Google can use that markup to show the questions under your listing. The answers come from words you already published, rather than filler written to fill a slot.
* **No duplicate content.** A recap published back to your site carries a canonical link to the original article and, by default, a noindex directive. A summary should send readers to the real thing, not compete with it for the same query.

Nothing is written to a post until you press the button. Postquarry never edits your content in the background.

= For developers =

* Custom formats: extend `Postquarry_Format` and add your class through the `postquarry_format_classes` filter.
* Custom hooks: `postquarry_hook_templates`.
* Custom niches and hashtag sets: `postquarry_niches`.
* Webhook payload: `postquarry_webhook_payload`.
* Actions: `postquarry_slice_saved`, `postquarry_published_post`, `postquarry_delivered`.
* WP-CLI: `wp postquarry slice <id>`, `wp postquarry run`, `wp postquarry voice`, `wp postquarry library`.

== External services ==

Postquarry does not depend on any external service and sends nothing anywhere by default. There are exactly three cases where it makes an outbound request, all of them started by you:

1. **Slicing a URL.** If you paste a URL into the studio, your server fetches that page so it can read the article text. The request goes only to the address you typed.
2. **RSS sources.** If you point Postquarry at a feed, your server fetches that feed using the RSS client bundled with WordPress.
3. **Webhooks.** If you configure a webhook, the slice you queued is POSTed as JSON to the URL you entered, with your site name and URL included so the receiving end can identify it.

No analytics, no telemetry, no licence check, and no call home. Your content is never sent to an AI provider, because there is no AI provider.

== Installation ==

1. Install and activate Postquarry.
2. Open **Postquarry > Studio**, pick one of your posts, tick a few formats and press **Slice it**.
3. Copy what you like, or save it to the library and queue it.
4. Optionally open **Postquarry > Settings** and turn on automatic slicing so every new post is sliced as you publish it.

== Frequently Asked Questions ==

= Does this need an OpenAI or Claude API key? =

No. There is nothing to connect and nothing to pay for per post. Every slice is produced by PHP on your own server.

= Will it write things my post does not say? =

No. Every sentence in a slice comes from your post. Postquarry selects, orders, shortens and labels your own material, and adds a hook line and a call to action from templates you can see and edit in the Hook library screen. It does not invent facts, because it does not invent anything.

= Can it post directly to X, LinkedIn or Instagram? =

Not by itself, and that is deliberate. Those platforms require you to register a developer app and hand a plugin long-lived access to your account. Instead Postquarry gives you a private feed and a webhook, which Zapier, Make, IFTTT, n8n and Buffer already know how to publish from. You keep control of the connection and can revoke it without touching your site.

= What length of post does it need? =

Around 150 words is the practical minimum. Below that there are not enough distinct points to make anything worth posting, and Postquarry will tell you so rather than pad it out.

= Does it work on a language other than English? =

The sentence splitter, key phrase extraction and ranking work on any language that uses spaces between words, and the interface is fully translatable. The stop word list, stemmer, readability score and hook templates are English. A non-English site will get usable extraction and ranking but English hook lines, unless you supply your own through the `postquarry_hook_templates` filter.

= Will the recaps it publishes hurt my SEO? =

No, provided you leave the defaults alone. A recap published back to your site gets a canonical link pointing at the original article and, by default, a noindex directive. Both are switches on the settings screen.

= Does it work with Yoast SEO or Rank Math? =

Yes. Postquarry detects Yoast SEO, Rank Math, SEOPress, The SEO Framework and All in One SEO, and writes the generated meta description into whichever one is active. If none is installed it stores the description on the post so a theme or another plugin can use it. Nothing is written until you press the button in the library.

= Can it auto post to social media from WordPress? =

Yes, through the automation tool of your choice. Queue a slice to your private feed or a webhook, connect that to Zapier, Make, IFTTT, n8n or Buffer once, and everything you queue after that is posted for you on the days and times you set.

= Will the FAQ block really get me rich results? =

It gives you valid FAQPage schema built from questions your post already answers, which is the requirement. Whether Google chooses to show it is Google's decision and no plugin can promise otherwise.

= Where is the data stored? =

Slices live in one custom table, `wp_postquarry_pieces`. Settings and the voice profile live in two options. Nothing is removed when you deactivate the plugin. If you delete it, everything stays unless you first tick the box on the settings screen that says to remove it.

= The queue is not going out on time. =

WordPress cron only runs when somebody visits your site, so a quiet site delivers late. Either accept the drift, or disable WP-Cron and run `wp cron event run --due-now` from a real crontab. There is also a **Run the queue now** button on the dashboard.

== Changelog ==

= 1.0.0 =
* First release.
* Twelve output formats across X, LinkedIn, Instagram, Facebook, email, your own site and short video.
* Deterministic extraction engine: TextRank sentence ranking, key phrase extraction, extractive compression, deduplication.
* Voice profile measured from your published posts.
* Readiness score with a full breakdown and specific fixes.
* Library, queue and schedule with configurable days, times and spacing.
* Delivery by clipboard, private RSS feed, signed webhook, or publishing back to your site.
* Write a TL;DR back to the post as a meta description, through Yoast SEO, Rank Math, SEOPress, The SEO Framework or All in One SEO.
* Insert an FAQ block into the post with FAQPage schema.
* Automatic slicing on publish.
* WP-CLI commands.

== Upgrade Notice ==

= 1.0.0 =
First release.
