/blog/changelog.html launches
A public release-notes surface listing what we've shipped. New entries get a permalink and a date pill so deep links land on the exact item.
New surfaces, integrations, fixes, and the small polish that makes PanelPeeps feel better. Reachable from every public page.
A public release-notes surface listing what we've shipped. New entries get a permalink and a date pill so deep links land on the exact item.
All marketing pages now emit canonical URLs, Open Graph, and Twitter Card meta. routes/seo.js ships /api/sitemap.xml with a weekly cadence hint for every /blog/ entry, so the indexer comes back reliably.
/try-free.html now captures a low-friction email before the third free message, so trial visitors can be re-engaged. Backed by a new db/try-free-captures.js table wired into the shared db/index.js pool.
A self-serve billing surface for managing subscription status — view plan, cancel, restore after lapse. Complements /pricing.html with the post-purchase experience.
A side-by-side comparison for customers evaluating AI personas against ad-hoc prompting. Built around the "grounded profile vs. generic prompt" framing that comes up in every sales call.
A scheduled job declared in polsia.toml [[crons]] that emails the owner a daily signup→paid and trial→paid digest. Idempotent via campaigns_run rows. Runs at 08:00 UTC so the morning starts with numbers.
Public blog at /blog/, indexing posts like /blog/what-is-an-ai-persona.html so essays are reachable from the nav on every public page.