v0.2.0
What's new
Free-tier paywall. SemanticPosts now ships with a free tier capped at 200 indexed posts — enough for personal blogs and small businesses to use the plugin indefinitely without paying. Beyond that, a Pro license is required to keep adding new posts to the Similarity Graph.
Pricing
| Plan | Price | Best for |
|---|---|---|
| Free | $0 | Up to 200 posts |
| Pro Monthly | $4.99 / mo | Trial or short-term sites |
| Pro Annual | $29.99 / yr | Standard — ~50% off vs monthly |
| Pro Lifetime | $89.99 once | Long-term sites that prefer no renewals |
How the gate behaves
- Existing widgets keep working regardless of license state. Already-indexed posts are never touched.
- Cold start halts gracefully when the gate engages; posts simply stay in the unindexed queue.
- Resumes automatically as soon as Pro is activated — no manual re-trigger needed.
- Filter override: hosting partners can raise/lower the cap via
semantic_posts_free_post_limit.
Settings page UI
A tri-state banner now appears above the form:
- 🟢 Pro active — indexed count displayed, no warnings
- 🔵 Free tier —
X / 200 posts indexed - 🔵 Approaching — same display when ≥80% used, with upgrade CTA
- 🟡 Locked — warning that indexing has paused, prominent Upgrade button
Privacy & WP.org compliance
- Freemius opt-in modal is off by default (
anonymous_mode: true). The plugin works immediately — users can opt in to analytics later from Settings. uninstall.phpnow invokes the Freemius SDK uninstall hook before clearing plugin data, so no account/option residue is left behind.readme.txtadds the required Freemius disclosure for WP.org plugin review.
Internal changes
- New
SemanticPosts\Paywall\PaywallGateclass encapsulates all license-gate logic; the rest of the codebase never touches Freemius types directly. ColdStartProcessor::run_batchchecks the gate per-post so the limit kicks in mid-batch as the count crosses 200.- Bundled Freemius WordPress SDK at
freemius/(5.6 MB). - 6 new PHPUnit tests in
PaywallGateTestpin the gate behavior; full suite stays at 290 / 290 green.
Upgrade
Dashboard → Updates → Update now (the auto-updater finds this release via the GitHub Releases API). Safe in-place — no data migration. Sites already above 200 indexed posts continue serving widgets without interruption; only new posts get the gate.