Billing & plans
Dashboard, MCP, or Suggestions card
Plan changes go through Polar. Three ways to change your subscription:
- Dashboard — Account → Plan & billing. Upgrade opens a Polar checkout; existing subscribers get a Manage subscription button that opens the Polar customer portal.
- AI assistant (MCP) —
percher_billing(action: "upgrade", plan)returns a checkout URL;percher_billing(action: "portal")returns the portal URL. The assistant surfaces the URL; you click to confirm. While a paid tier is waitlisted,upgradeis refused withPLAN_WAITLISTED(409); join the waitlist on the pricing page. - Suggestions — when insights detect overprovisioning, the Manage subscription action button on the overview tab takes you straight to the Polar portal.
Percher never changes subscriptions server-side. Every path ends with you confirming the change in the browser. Once Polar reports the new status via webhook, your plan limits update automatically — no redeploy needed.
Visitor analytics
Starter, Maker and Max include cookie-free visitor analytics. Access follows the app owner's plan, including for collaborators. Free and anonymous apps do not include visitor statistics. App health and logs remain available under their existing plan limits. See Visitor analytics for the available metrics.
Included bandwidth
Bandwidth is counted per account, per calendar month (UTC). Everything your apps serve counts: the app itself, previews, PocketBase and custom domains. Each byte counts toward the account that owned the app when it was served, so deleting an app or creating it again does not reset the month. If you transfer an app, the traffic it served before the transfer stays on your account and the recipient's count starts at the transfer. At 80% of the allowance you get an email. At 100% public traffic to your apps pauses until the next month starts.
Sleeping an app
Free apps sleep after 20 idle minutes and wake on the next request; paid plans stay running. You can also put one to sleep yourself: the Put to sleep card on the app's Settings tab, percher_sleep from the hosted MCP connector, or percher sleep <app> and the local percher_sleep tool, which require CLI/local MCP 1.0.2 or later. Routes, custom domains, environment variables and data stay exactly as they are, and the next visit wakes it. Sleeping is how you hand RAM and CPU back to your plan's allowance when a start is refused because the allowance is in use, and the refusal names which apps are holding it. Disk is not freed, so a sleeping app still counts against your storage pool.