Changelog
What's shipping at Canner.
We've been live since early May 2026 and ship most days. The list below is hand-maintained — pulled from production deploys, not from a feed. Subscribe via RSS coming soon. For now, check back, or follow hello@canner.ca.
Pricing: permanent free Starter, .com added to free domain offer
- Starter is now a permanent free plan, not a 30-day trial. Resources on Starter are pooled across free accounts and deprioritized when paid builds are queued.
- Basic and Pro charge immediately on signup — no 30-day trial. What you sign up for is what you pay starting day one.
- Free domain offer expanded to include .com: Basic includes .com or .ca on monthly, plus .quebec on annual; Pro includes .com, .ca, or .quebec on either interval.
Domain checkout: CIRA CPR registrant form + Quebec acknowledgment
- New registrant form on the domain checkout modal, with proper CIRA CPR (Canadian Presence Requirements) dropdown for .ca registrations.
- Quebec acknowledgment step for .quebec domains. Friendly 409 copy when the requested name was registered minutes earlier by another customer.
Yearly billing toggle + free .ca / .quebec domain credit
- Billing page now offers monthly and annual intervals. Annual saves two months versus monthly.
- Basic annual and Pro (either interval) include a free .ca or .quebec domain registration, applied at checkout.
Per-tenant systemd parity for cold-start, wake, runtime logs, previews
- All runtime paths — cold-start sweeper, wake handler, runtime-logs SSE, preview deploys — now dispatch on each project's runtime_mode column. PM2 and systemd run side by side.
- New helper subcommands for systemd tenants: logs (journalctl follow), prepare-preview-runtime, preview-chown, preview-start, preview-stop, preview-cleanup, preview-prune-bundle.
- End-to-end verified: a real tenant went idle, the sweeper stopped its systemd unit, the wake handler restarted it on the next request, and the runtime served 200 OK. Cold-start → wake works on systemd in production.
Per-project metrics, preview deploys on PR, per-tenant systemd, public status page
- Per-project hourly traffic metrics with status breakdown, visible as a chart on the project page.
- Preview deployments on pull requests. Each PR gets a per-branch runtime at <branch>--<slug>.app.canner.ca, torn down when the PR closes.
- Per-tenant Linux users with systemd-managed runtimes (Phase 5). New projects default to systemd; existing PM2 tenants continue to work unchanged.
- Public status page at canner.ca/status, server-rendered with a 10-second platform-side cache.
Stripe billing, custom domains with auto-TLS, generic frameworks, API tokens
- Stripe billing wired end-to-end. Add a card, get a subscription with trial_end aligned to your 30-day free window.
- Custom domains with automatic Let's Encrypt TLS issuance via Caddy. CNAME your domain and the certificate appears in seconds.
- Generic framework detection: Next.js, Vite (React, Vue, Svelte), and plain Node.js applications all build and serve without configuration.
- API tokens (cnr_…) for programmatic access. Retry, cancel, and rollback endpoints on every deployment.
- Bilingual French / English dashboard. Account deletion (cancels subscription, drops all tenant DBs and runtimes).