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.
Scheduled SQL queries — run SQL against your databases on a cron
- New: scheduled SQL queries. Write SQL, set a cron schedule, and Canner runs it against your project databases in Montreal — reading and writing them by name (project.schema.table), joining across projects, and writing results straight into your Postgres. No external ETL tool, no data leaving Canada. It's the SQL counterpart to scheduled jobs (which POST to a webhook). Available on every plan under Compute → Scheduled queries; full guide at /docs/scheduled-queries.
- Each run is isolated: an in-memory engine with a per-query memory cap and timeout, the local filesystem disabled, and reach limited to databases your own account owns. Run history, run-now, pause/resume, and cancel are all in the dashboard.
- Security hardening: Data Workshop queries now run with the local filesystem disabled across the board, closing off host-file access from user SQL.
Real documentation, and a Live price that reflects what it is
- A full docs site is live at /docs: quickstarts for every supported framework and runtime (Next.js, Vite, Astro, Node, Python, Go, Ruby, PHP, Rust, static), guides for domains, databases and environment variables, and a troubleshooting page that decodes the exact error messages you might see in a build log. Fully bilingual.
- Live is now CA$9/month or CA$99/year. Existing Live subscribers keep their original price — this applies to new subscriptions only. Starter stays free, Dedicated stays from CA$29.
Simpler pricing: Starter, Live, and usage-metered Dedicated
- Three tiers instead of four. Starter is free and sleeps when idle; Live is a flat CA$4.90/month for always-on hosting, custom domains, and ML; Dedicated is usage-metered from CA$29 and scales as far as you need.
- Dedicated bills fairly: you pay for memory or storage — whichever you lean on more, never both — so you only ever pay for what you actually use.
- Machine-learning Python (PyTorch, TensorFlow) and Rust now run on Live, not just the top tier. Compliance documents and audit-log export are included on Dedicated.
A documented REST API, an OpenAPI spec, and an MCP server for AI agents
- The Canner API is now a proper REST surface under /v1, described by an OpenAPI 3.1 spec with an interactive reference at api.canner.ca/docs. Manage projects, deployments, domains, databases, environment variables, and billing from your own code. A new developer guide lives at canner.ca/developers.
- Consistent error responses (a stable code, a message, and a request_id), rate-limit headers on every response, and keyset pagination on the list endpoints. Existing dashboard and CLI paths keep working unchanged.
- New @canner-ca/mcp: a Model Context Protocol server that gives AI agents — Claude Desktop, Cursor, and others — native tools to deploy and manage your projects. Zero dependencies, in keeping with Canner's clean supply chain. See canner.ca/mcp.
- The @canner-ca/cli gained a --json output mode for scripts and agents, plus new token, env, and domains commands.
Deploy Python, Go, Ruby, PHP, and Rust — not just Node
- Python now deploys the same way as everything else, with FastAPI, Flask, Streamlit, Gradio, and Django detected automatically. Drop a Gradio or Streamlit AI demo and get a live URL.
- Go, Ruby (Rails, Sinatra), PHP (Laravel, Symfony), and Rust join the list too — no configuration, automatic detection.
- More JavaScript frameworks recognized out of the box: Angular, Create React App, Gatsby, and Docusaurus, plus full-stack apps that run their own server.
- Machine-learning Python (PyTorch, TensorFlow) and Rust are available on Pro and Enterprise.
Enterprise plan, compliance documents, and a French blog
- New Enterprise plan with a dedicated server, priority support, and a 99.9% uptime commitment.
- A data processing agreement and a Quebec data-residency attestation are now available as one-time add-ons — included on Enterprise.
- The full blog is now available in French, and the pricing page has a clearer side-by-side comparison.
Response caching with targeted purge
- Opt-in tag-based HTTP caching, served from Canner's own infrastructure in Quebec — not a foreign edge network. Available on every plan.
- A headless-CMS publish can purge exactly the affected pages via a per-project webhook. Cache hit ratio is shown on each project.
Stronger build isolation
- Every build runs fully isolated under its own identity, with install scripts and network access locked down by default. Build logs now clearly flag an out-of-memory build instead of a generic failure.
Data Workshop — SQL analytics on your uploads
- Upload CSV, Parquet, or JSON and run standard SQL over it in milliseconds, right from the dashboard. Included on every plan, with per-tier storage and query limits.
Drag-and-drop uploads and a command-line tool
- Deploy without Git: drag a folder or a .zip onto the homepage, or upload from the dashboard. A static site (a folder with an index.html) deploys instantly, with no build step.
- New @canner-ca/cli: run npx @canner-ca/cli deploy from any terminal — including inside Cursor — to ship the current directory.
Pricing: free Starter, .com added to free domain offer
- Starter is now a 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.
More reliable cold-start, wake, and preview deploys
- Idle projects sleep and wake automatically on the next request — no cold-start surprises. Live runtime logs and pull-request preview deployments now work consistently.
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.
- Each project now runs as its own isolated system user, for stronger separation between tenants.
- 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 and subscribe to a paid plan in a few clicks.
- 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).