canviq

Changelog

What's new

A chronological record of everything we ship. No marketing copy — just the facts.

October 2026Feature

Your board now has a footer

  • Every board page carries a footer: your organization name in the copyright line, links to Privacy and Terms, and a "Powered by Canviq" badge. Your profile page gets the same footer.
  • The badge follows your plan, the way it already does on surveys. Scale can switch it off from the branding page, and every other plan shows it.
  • Our own Privacy and Terms pages always show Canviq, never your organization, since they are our documents
  • Nothing above the footer moved; it sits at the bottom of the page
October 2026Feature

The in-app survey widget carries the Powered by badge

  • The survey widget you embed with the JS SDK showed no "Powered by Canviq" badge on any plan. It now shows the same badge the hosted survey link has always had.
  • Free, Startup, Growth and trial plans show it. On Scale it stays hidden if you turned it off on the branding page.
  • Nothing to change on your side. The badge ships in the SDK bundle we serve, so your widget picks it up within minutes.
October 2026Security

Survey share links have an hourly ceiling

  • Responses collected through a survey's share link count against your monthly allowance. Every limit on that link was per visitor address, which bounds one visitor and nothing in aggregate: answers arriving from many different addresses added up with no ceiling at all.
  • Each survey now has its own hourly ceiling too, counted across every visitor together. It is a tenth of your monthly allowance per hour, with a floor of 25 and a cap of 500, so 25 an hour on Free, 100 on Startup, 500 on Growth. Opening a survey costs nothing against your allowance, and up to 5,000 opens an hour are accepted.
  • This is one of two limits, not a complete answer, and it cuts both ways. It bounds how much a single survey can absorb per hour, which a per-visitor limit could never do. It does not make a public link unburnable on its own: someone determined, with a pool of addresses, can still spend an allowance over a number of hours, or fill a survey's hour on purpose and turn real respondents away until it clears. On Free the ceiling is deliberately low for that reason. An hour clears by itself, and a spent month does not. Treat a survey link like any other public URL, and pause the survey if it starts taking traffic you cannot account for.
  • A respondent who does arrive at a full hour is asked to try again shortly, and the hour clears on its own. Nothing they typed is lost, and in-app responses collected through the SDK have their own separate limits.
October 2026Security

Agent keys are rotated from the dashboard, not the API

  • A key tied to an MCP agent takes its access from that agent's policies, not from the key itself. Rotating one over the API handed back a replacement carrying the agent's full access, even to a caller who held far less.
  • Rotating an agent key over the API is now refused with a 403. Rotate it from the API keys page in your dashboard instead, where nothing has changed.
  • Every other key rotates over the API exactly as before
  • If you rotated an agent key over the API before this change, the replacement still carries that agent's access; revoke it if you did not mean to hand that out
October 2026Security

Rotating an SDK key keeps the domains it was locked to

  • An SDK key limited to specific domains now keeps that list when you rotate it. The replacement key used to come back accepting requests from any origin.
  • This applies whether you rotate from the dashboard or over the API
  • A key that was never limited to any domain still rotates to a key with no limit, so nothing changes there
  • If you rotated a domain-limited key before this change, the replacement is still unrestricted; create a new key with the domains set to put the limit back
October 2026Security

The Powered by badge follows your current plan

  • Hiding the "Powered by Canviq" badge is a Scale feature. If you hid it on Scale and later moved to another plan, the badge comes back on your surveys
  • Saving the branding page no longer fails with an error about the badge when the only thing you changed was your brand color
  • Your badge setting is kept, so moving back to Scale hides it again without you touching the checkbox
October 2026Security

Test API keys can no longer reach your live keys

  • A test key can now only create, list, read, revoke and rotate test keys, and a live key only live keys
  • Asking for a different environment when creating a key is refused with a 403; a key in the other environment returns 404, the same as a key that does not exist
  • The dashboard is unchanged: it still shows and manages both environments
October 2026Security

Rotating an API key can no longer hand back more access than you had

  • Rotating a key over the API now requires that your own key hold every scope the key being rotated holds
  • A rotation that would return a key with scopes yours lacks is refused with a 403, and no key is created
  • Rotating from the dashboard is unchanged, as is rotating a key whose scopes match yours or are narrower
October 2026Security

Shared survey links now count toward your monthly responses

  • Answers that arrive through a survey share link or an email invite count toward your plan response limit, the same as answers collected through the SDK
  • Your usage number and the near-limit warning in Billing now include those answers, so the figure matches what you have actually collected
  • Once the limit is reached, a shared link stops taking new answers until the next billing period; visitors see a short note that the survey is not taking answers right now, with nothing about your plan
October 2026Security

Plan limits now apply to integrations and exports

  • GitHub issue creation needs Startup or higher; Jira, Linear and two-way issue sync need Growth or higher
  • CSV exports need Startup or higher, full JSON exports need Growth or higher, and survey targeting rules need Startup or higher
  • Guest list exports need Startup or higher; exporting your own account data is unchanged on every plan
  • Mixpanel and Amplitude previews need Scale, the same as saving the API key already did
  • Your plan is checked when each request runs, so an incoming GitHub, Jira or Linear event stops creating board items once a plan no longer includes it
  • Survey targeting rules you saved on a paid plan stop being applied if you move to a plan without targeting, and your surveys keep going out untargeted
  • Connect buttons for GitHub, Jira and Linear now show the plan they need instead of failing when you click them
  • Disconnecting an integration and viewing what you already set up keep working on every plan
September 2026Security

Anonymous board submissions now respect your settings

  • Anonymous visitors can no longer submit feedback on boards where that setting is turned off
  • The feedback button on your board only appears when anonymous submissions are actually allowed
  • Anonymous submissions now count toward your plan submission limit, same as signed-in ones
September 2026Security

Board visitors locked out of admin data

  • On boards set to "authenticated visitors", signing in to read and vote no longer counts as being on the team
  • Survey responses, survey lists, personas, journey stages, and insight themes now check team membership, not just sign-in
  • Your team is unaffected: members and admins keep the access they had
September 2026Feature

Help and Support in the admin nav

  • Help & Support link at the bottom of the admin sidebar and in the mobile drawer, which opens the contact form in a new tab
  • Marketing header trimmed to Log in and Start Free Trial; the waitlist button is gone
  • Old /landing and /waitlist links redirect to the homepage
August 2026Feature

A new look across the app

  • Bricolage Grotesque for text and Geist Mono for every numeral, so figures line up down a column
  • Light and dark themes, remembered per browser, with a toggle on the public board
  • A single score rail replaces the PMF donut on the dashboard and the homepage
  • Text and button contrast raised to WCAG AA across the dashboard, forms, and marketing pages
  • Charts redrawn on shared tokens: square corners, one accent color, monospaced axis labels
  • Glass, gradient, and glow effects dropped in favor of flat surfaces and hairline rules
August 2026Feature

Trials, the founder card, and self-service billing

  • Billing panel in admin settings with your current plan, response usage, and upgrade buttons
  • Manage Subscription opens the Stripe Customer Portal for payment methods, plan changes, and cancellation
  • Trial reminder emails at 30, 7, and 1 day before expiry, plus a notice when it ends
  • Founder cards scanned before 8 November 2026 get the first 90 days on Startup free, applied at checkout
  • Upgrading charges immediately instead of starting a second trial
  • Danger Zone for owners: delete the organization by typing its slug, which also cancels the Stripe subscription
August 2026Feature

Surveys, boards, and a separate SDK key format

  • SDK keys now carry their own cvq_live_ and cvq_test_ prefixes instead of sharing the pk_ format with REST and MCP keys, so a key is identifiable on sight
  • Image selection and file upload question types in the web survey builder
  • NPS available in the builder question dropdown, and matrix row and column renames now save
  • Surveys render properly on iPhone with a chromeless route, safe-area insets, and larger touch targets
  • The embedded survey widget picks up your organization brand color
  • Organization audit log at Settings, Audit: every security-relevant action, filterable and paginated
  • Admin navigation collapses into a drawer below tablet width
  • Jira push and link controls on the submission detail page, and Linear connections now persist
July 2026Feature

Plans and billing on Stripe

  • Four plans: Free, Startup, Growth, and Scale, billed monthly or annually
  • Free forever at 100 responses a month, one seat, and one survey, with the SDK installed
  • Stripe Checkout for upgrades and the Stripe Customer Portal for everything after
  • Plan limits enforced on responses, seats, API keys, MCP agents, and surveys
  • An expired trial with no paid subscription resolves to Free at read time and your data stays put
  • Deleting an organization cancels its Stripe subscription and deletes the customer record
  • Signing up provisions your board at your-slug.canviq.app automatically and sends a welcome email
July 2026Feature

Public REST API, OpenAPI spec, and API key management

  • OpenAPI 3 spec at /api/v1/openapi.json with a browsable Swagger UI at /api/docs
  • RFC 7807 problem responses across the API, with a published error reference
  • Create, list, rotate, and revoke REST keys from /api/v1/keys or the admin UI
  • Set an expiration date on any key. Expired keys stop counting against your active key cap
  • SDK keys can be restricted to specific domains, enforced fail closed on every request
  • Rate limits by plan and endpoint, with X-RateLimit headers on every response
  • Per-plan key caps, with MCP and custom scopes gated to the plans that include them
July 2026Feature

The Canviq CLI and a standard MCP endpoint

  • canviq CLI published to npm and Homebrew
  • canviq mcp configure writes the MCP server config your coding agent needs, then reads it back to verify it loaded
  • Survey commands: list, get, create, publish, pause, archive, pmf-score, segments, and responses
  • Question commands (create, update, delete, reorder) and trigger commands (list, create, update, delete)
  • canviq survey pmf-create builds a complete PMF survey in a single call
  • JSON-RPC 2.0 endpoint at /api/mcp, so any standards-compliant MCP client can connect
  • Credentials stored in the OS keychain, or read from CANVIQ_API_KEY in CI
June 2026Feature

SDK Status dashboard and iOS SDK stable release

  • SDK Status card in admin settings: connection badge, last seen, version string, and API key CTA
  • GET /api/admin/sdk-status health endpoint for SDK connection monitoring
  • X-Canviq-SDK-Version header capture: server records the SDK version per key for debugging
  • iOS SDK marked stable with full integration guide at docs.canviq.app
  • Deterministic org selection on login: membership query ordered by joined_at to prevent ambiguous redirects
  • Owner and admin accounts now land on /admin after magic link login
May 2026Feature

Guest identity capture: collect respondent emails without a signup wall

  • Post-survey prompt: anonymous respondents who complete a PMF survey see a "Stay in the loop?" email capture
  • Inline capture on idea submissions: last field of the submission form collects email for anonymous users
  • Guest sign-in page at /auth/guest with magic link for respondents who want to track their submissions
  • Session claim: submissions, votes, and survey responses made as a guest transfer to the account after verification
  • Admin guest report at /admin/guests: table of captured identities with stats, status filters, and export
  • Response usage warning: Startup tier accounts see an alert at 80% of their monthly response limit
April 2026Feature

iOS SDK: native survey delivery for mobile apps

  • Hosted survey renderer at /sdk/renderer for iOS WKWebView: no native question renderer required
  • GET /api/sdk/targeting: evaluates trigger rules, fatigue state, and targeting conditions for the Swift TriggerEvaluator
  • POST /api/sdk/responses: submits completed survey responses from the iOS SDK
  • GET /api/sdk/surveys/[id]: retrieves a survey definition for force-show flows
  • Server-side fatigue deduplication prevents duplicate survey shows across sessions and devices
  • canviq.track() and canviq.identify() event API for behavioral targeting
  • SDK event tracking with nightly aggregation jobs for WAU%, retention cohorts, and feature adoption
March 2026Feature

PMF Analytics: HXC Profiler, segment analysis, and nightly score snapshots

  • HXC Profiler: AI-powered analysis of your "Very disappointed" cohort, producing a High-Expectation Customer profile, core value proposition, and friction themes
  • Segment analysis view: side-by-side comparison of Very vs Somewhat Disappointed respondents to identify messaging and product gaps
  • PMF onboarding wizard: 5-step guided setup from SDK key to live survey without leaving the dashboard
  • Nightly score snapshots: automated daily PMF score captures so your trend chart reflects changes over time
  • Submissions Over Time bar chart on the analytics page
  • Sentiment analysis pipeline: Canviq AI scoring on open text responses with timeline chart and donut summary
March 2026Security

Security hardening: WAF, HSTS, and storage RLS

  • Cloudflare WAF: free-tier WAF in front of all public endpoints with documented runbook
  • HSTS enforcement: Strict-Transport-Security header on all responses
  • Organization logo uploads restricted to org admins only
  • Survey templates read-restricted to authenticated users
  • PII session audit: onboarding_session cookie fields documented and CI-verified
  • Nonce-based CSP: replaced unsafe-inline script-src with per-request nonces
February 2026Launch

Marketing site, pricing pages, and documentation

  • Public marketing site live at canviq.app
  • Pricing page with Starter ($49/mo) and Pro ($149/mo) plans
  • Supporting pages: About, Contact, Security, Changelog
  • Public documentation at docs.canviq.app
  • 14-day free trial, no credit card required
February 2026Feature

Survey Builder: Create and distribute surveys with 4 question types

  • Drag-and-drop survey builder with rating, multiple choice, free text, and NPS types
  • Test mode with instant sample data preview
  • SDK integration: embed in any web app with 3 lines of code
  • Event-triggered distribution (post-purchase, onboarding, support close)
  • MCP server with 18 tools (5 read + 13 write) for Canviq AI-powered survey lifecycle, question, and trigger management
  • Sentiment analysis on open text responses
January 2026Foundation

Feedback boards, voting, and public roadmap

  • Public Feedback board with submission, voting, and status tracking
  • GitHub integration: submissions auto-create issues in configured repos
  • Public roadmap with kanban and list views
  • Admin triage dashboard with bulk actions, merge, and assignment
  • Real-time vote counts and comment threads via Supabase Realtime
  • Full-text search across all submissions
  • GDPR-compliant data export and account deletion