1. The promise
Anything we ship — a pricing tier, an API endpoint, a CMS connector, a feature you depend on for daily work — stays available for at least 90 days after we announce its retirement. We do not delete features without notice, and we do not silently change behavior that you've built workflows on top of.
2. What counts as a “deprecation”
- Public API endpoints under
/api/v1/*: a breaking change to the response shape, removing a field, removing an endpoint, or tightening validation in a way that rejects previously accepted input. - Webhook event names + payload shape (
article.generated,article.published,automation.completed, …). Adding new optional fields isn't a deprecation; removing or renaming any existing field is. - Outbound CMS integrations (WordPress, Ghost, Shopify, Webflow, Contentful). Removing a CMS we currently support, or breaking the publish flow for one.
- Plan features that you're already paying for. Moving a feature you currently have to a higher tier counts as a deprecation on your current plan.
- The Chrome extension + outbound webhooks. Renaming headers, changing signature formats, or removing endpoints used by the extension or by external integrations.
3. How you'll be told
- In-product banner on the affected page (e.g. a yellow strip on /dashboard/api-keys for an API change). Dismissable but it returns until the deprecation date passes.
- Email to the account owner at least 90 days before the change ships. A second reminder goes out 14 days before.
- Public changelog entry tagged
deprecation, dated with the retirement date and the migration steps. - For API + webhook changes: the change is shipped behind a versioned header or a new endpoint first, so callers can opt in early and test. The old surface keeps responding the old way for the full 90 days.
4. What's not a deprecation
Some changes don't count and ship without a 90-day window — they're improvements you don't have to act on:
- Adding new optional fields to an API response or webhook payload. Old clients ignore them.
- Adding new API endpoints, plan features, or content formats that don't replace anything.
- Performance, accuracy, and security fixes that preserve the contract. If a generated article gets better, faster, or safer without a behavior change you can observe, we ship it.
- Internal admin / debug routes under
/admin/*or/api/admin/*— these are operator tools, not part of the public surface. - Pricing changes for new sign-ups. Your locked-in price stays locked for the period described in your Terms of Service; the catalog price for new customers can move at any time.
5. Emergency security carve-out
If a feature creates a meaningful security or privacy risk to other users (credential leak, account-takeover vector, data-exfiltration path), we may take it down faster than 90 days. We will still email the account owner immediately and post a changelog entry explaining what changed and why. We will not use this carve-out for product or pricing decisions.
6. How to find out what's open right now
Active deprecations are listed at the top of the changelog. If you don't see anything tagged deprecation, nothing is scheduled to be retired.
7. Questions
Email support@goatwriter.io with subject “Deprecation” if a planned change blocks your workflow. We've sometimes pushed retirement dates back when a customer had a real reason — it's not a free pass forever, but we'd rather know.