Changelog

New features, improvements, and fixes shipped to Pollenate. Follow along as we build the best feedback platform for developers.

v0.19.0

Feedback Page Editor Upgrades & @Mentions

The feedback page question editor now supports drag-and-drop reordering, inline type changes, and optional follow-up text fields on rating questions. Notes on feedback also support @mentions.

NewDrag-and-drop question reordering — grab the handle to reorder questions with instant visual feedback and automatic server sync
NewChange question type after creation — edit any question and swap its type (e.g. thumbs → NPS) without deleting and recreating
NewOptional follow-up text field on rating questions — add a free-text textarea below thumbs, stars, CSAT, NPS, or emoji inputs for richer responses
New@Mentions in feedback notes — type @ to mention team members with autocomplete, highlighted in notes
ImprovedQuestion cards now show follow-up prompt text when configured
ImprovedRating inputs on public feedback pages preserve both score and text answer in a single submission
v0.18.0

One-at-a-Time Feedback Pages & Passkey 2FA

Feedback pages can now display questions one at a time with a progress bar, support rich markdown intros, and passkeys count toward your org's 2FA requirement.

NewOne-at-a-time display mode for feedback pages — show questions individually with Next/Previous navigation and a progress bar instead of all at once
NewMarkdown introduction block for feedback pages — add rich-text intros with headings, lists, and links rendered above the questions
NewAdmin settings tab: display mode picker and markdown editor with live preview
ImprovedPasskeys (Touch ID, Face ID, security keys) now satisfy organization-level 2FA enforcement — no separate TOTP setup required
ImprovedAdded otpauth:// link on TOTP QR code for Safari/macOS Passwords autofill during 2FA setup
ImprovedMarkdown preview in admin editor now uses marked + DOMPurify with proper prose styling instead of naive regex rendering
ImprovedInstalled @tailwindcss/typography plugin for consistent heading, list, and link styles in markdown content
FixedFixed Turnstile CAPTCHA verification in one-at-a-time mode — widget now renders only on the final step and properly re-renders when navigating between steps
FixedFixed invite revoke calling the wrong API endpoint (was using token URL instead of invitation ID URL)
FixedFixed invite remind button — now shows 'Sent!' visual feedback after successfully resending an invitation
FixedUpdated 2FA enforcement messaging to mention passkeys as an alternative to authenticator apps
v0.17.0

MCP Server for AI Agents

Pollenate now exposes a Model Context Protocol (MCP) server at /mcp, allowing AI agents like Claude, Cursor, and other MCP-compatible clients to submit feedback, query stats, and search your data programmatically.

NewMCP server endpoint at https://api.pollenate.dev/mcp — uses Streamable HTTP transport per the latest MCP specification
Newsubmit_feedback tool — AI agents can submit feedback to any inbox using an existing API key
Newlist_inboxes & list_brands tools — discover available inboxes and brands for the organization
Newget_feedback tool — list and filter feedback by brand, inbox, type, date range with pagination
Newget_feedback_stats tool — aggregated statistics including NPS, CSAT scores, breakdowns by type and source
Newsearch_feedback tool — keyword search across comments and context fields
NewFeedback submitted via MCP is tagged with source 'mcp' for tracking
ImprovedAPI key authentication reused across MCP tools — existing pk_live_ keys work with collect, read, or write scopes
ImprovedBrand-scoped API keys automatically restrict MCP tool access to the associated brand
FixedFixed API documentation link in LandingPage footer — now correctly points to https://api.pollenate.dev/docs
v0.16.0

Invite Links, Brand Theming & Polished UX

Discord-style invite links for onboarding teammates, full brand theming on feedback pages and widgets, a new Pollenate logo, and dozens of UX polish touches across every page.

NewDiscord-style invite links — generate shareable join links with role, expiry, and max-use controls so teammates can join your org in one click
NewBrand access on invite links — choose which brands new members get access to when they join
NewEdit invite links after creation — update label, role, expiry, max uses, brands, and active status from a dedicated modal
NewFeedback pages fully inherit brand theming — colors, fonts, logo, border radius, and button text color all flow from your brand settings
NewWidget brand identity — pass a logo, brand name, and secondary color directly to the embeddable widget via data attributes
NewClickable brand buttons on the Widget Builder and Inboxes pages — select a brand inline instead of relying on the sidebar
NewNew Pollenate BrandMark logo SVG with light/dark variants and a "Powered by Pollenate" footer on public feedback pages
NewTheme-aware favicon — automatically switches between light and dark favicon based on system preference
NewEmail notifications on feedback pages — add email recipients directly from the feedback page settings tab; creates automations behind the scenes with a CTA for advanced webhook/Zapier integrations
ImprovedRewritten documentation with a new "How Pollenate Works" overview section written in plain English for non-technical users
ImprovedDocs now include beginner-friendly explanations for every section — organizations, brands, inboxes, widgets, and feedback pages
ImprovedInboxes page includes a description of what inboxes are and a "Learn more in the docs" link
ImprovedShared WidgetPreview component — live iframe-based widget preview replaces hand-coded mocks across Brand Editor and Widget Builder
ImprovedReplaced all 7 native browser confirm() dialogs with a polished modal-based useConfirmDialog hook
ImprovedUTM tracking links on all BlueHive Health footer references for analytics
ImprovedInvite and Join pages redesigned with cleaner layout and better error handling
FixedFixed brand logo upload — media URLs now resolve correctly through a dedicated /brands/:id/logo proxy endpoint
FixedXSS protections added to widget.js — escapeHtml and isSafeUrl prevent injection when rendering user-supplied strings
FixedInvite link security hardened — brand IDs validated against org, atomic max_uses enforcement, idempotent join, race-safe code generation
FixedAccessibility check color contrast fallbacks fixed for dark mode in Brand Editor
FixedStabilized useEffect dependencies in WidgetsPage to prevent resetting widget edits on context recreation
FixedSwitched from <a href> to React Router <Link> for client-side SPA navigation on Inboxes page
v0.15.0

Reporting Dashboard & AI Insights

Interactive charts, filterable analytics, and AI-powered feedback summaries — plus major authentication stability improvements.

NewInteractive analytics charts — feedback volume area chart, NPS/CSAT trend lines, type distribution donut, and sparklines on dashboard stat cards
NewInbox detail charts — impressions vs. feedback area chart and conversion rate bar chart
NewFilter bar with Inbox, Type, and Source dropdowns — filters flow through to all stats, charts, and feedback lists
NewDate range picker with 7d / 30d / 90d / 6-month presets for all analytics views
NewSource and inbox breakdown charts — pie chart for feedback sources, bar chart for inbox distribution
NewAI-powered insights panel — generates a natural-language summary of feedback trends, sentiment, and actionable recommendations using GPT-4.1-mini
NewBackend: daily NPS and CSAT time series, type/source filters, and bySource/byInbox breakdowns on the stats endpoint
ImprovedFeedback page editor charts replaced with interactive recharts components instead of hand-drawn SVGs
ImprovedAccessibility check component extracted into a reusable shared module
FixedPrevented stale tokens from killing concurrent login sessions — added skipAuth for public auth endpoints and scoped logout to only affect current tokens
FixedFixed logout endpoint checking wrong JWT field (payload.id → payload.sub), so sessions are now correctly deleted on logout
FixedOnly logout on SessionExpiredError, not transient network errors or 500s — users stay authenticated through temporary API hiccups
FixedNavigate directly after OTP/MFA/passkey login instead of relying on useEffect — eliminates race condition where users bounced back to the login page
FixedWait for Zustand persist hydration before running refreshUser to avoid racing with uninitialized store state
FixedReplaced hono/trailing-slash 301 redirect with custom 302 to prevent browsers from permanently caching redirects that strip Authorization headers
v0.14.0

Gravatar Avatars, Invitation Reminders & Docs Overhaul

User avatars via Gravatar, one-click invitation reminders, a complete documentation rewrite with CSP troubleshooting, and dependency updates.

NewGravatar user avatars — profile pictures resolve automatically from email via SHA-256 hash, with initials fallback
NewResend / remind button for pending invitations — regenerates the invite token, resets expiry to 7 days, and sends a reminder email
NewExpired and expiring-soon badges on the invitations table so admins can see at a glance which invites need attention
NewQR code generation API endpoint for programmatic QR code creation
ImprovedComplete documentation rewrite — 1,700+ lines added with user-friendly language, step-by-step guides, and "In plain English" callouts for non-technical readers
ImprovedNew Content Security Policy troubleshooting section — common errors, required directives table, and config examples for Nginx, Apache, Next.js, and meta tags
ImprovedNew CSP FAQ entry for "Failed to fetch" errors with direct link to the troubleshooting section
ImprovedDocs sidebar gains a Troubleshooting group with CSP as the first entry
FixedFixed BrandAccessModal checkbox handler — switched from onCheckedChange to onChange for compatibility
FixedBumped all dependencies to latest (React 19.2.4, react-router 7.13.1, Hono 4.12.2, Tailwind 4.2.1, AG Grid 35.1.0, Wrangler 4.68.1)
FixedFixed AG Grid import path — DashboardPage now imports from @mieweb/ui/ag-grid
v0.13.0

AI Brand Extraction & Streamlined Settings

Automatically extract brand colors and styles from any website URL, plus a cleaner navigation with API Keys and Automations moved into Settings.

NewAI-powered brand style extraction — paste a website URL and Pollenate auto-detects colors, fonts, and brand name
NewAPI Keys and Automations are now tabs inside the Settings page for a cleaner sidebar
ImprovedSimplified sidebar navigation — fewer top-level items, more organized settings
ImprovedLegacy /api-keys and /automations URLs still work seamlessly
v0.12.0

React Package & AI Form Generation

Official React component package, AI-powered form builder, and short URLs for feedback pages.

NewPublished @pollenate/react — a fully typed, drop-in React component for embedding Pollenate widgets
NewAI-powered feedback form generation — describe your survey and let AI build the form for you
NewShort URLs for feedback pages with shareable links and QR codes
FixedFixed refresh token loss and concurrent refresh race conditions
FixedResolved CORP header issues for QR code sharing
v0.11.0

Zapier Integration & Automation Engine

Connect Pollenate to 7,000+ apps with our official Zapier integration and new automations engine.

NewZapier integration — trigger workflows from new feedback, search existing feedback, and more
NewAutomation engine with support for webhooks, email alerts, and Zapier triggers
NewBrand access management — control which team members can access specific brands
NewFeedback source tracking — see whether feedback came from the widget, API, Zapier, or feedback pages
NewDynamic score fields in Zapier based on feedback type (stars, NPS, CSAT, etc.)
NewDeep-link to API key creation from Zapier setup flow
FixedFixed webhook payload missing fields and notes foreign key constraint
FixedResolved Zapier publishing compatibility checks
FixedFixed react-router import for useSearchParams
v0.10.0

Feedback Pages & Brand Editor

Build multi-question feedback forms, customize your brand, and share via QR codes.

NewFeedback Pages — drag-and-drop multi-question survey builder with public shareable forms
NewQR code generation for feedback pages — print, share in emails, or display in-store
NewBrand editor with full widget setup and live preview
NewButton text color customization for branded widgets
NewSidebar collapse state persisted in localStorage
ImprovedImproved hero CTA and widget preview layout on mobile
ImprovedBetter mobile responsiveness across all landing pages
v0.9.0

Two-Factor Authentication & Security

Organization-level 2FA enforcement and security improvements.

NewOrganization-level 2FA enforcement — require all team members to use two-factor authentication
NewGroup inboxes by brand when "All Brands" is selected
NewPrivacy controls — data-strip-query-params option to strip sensitive URL parameters
NewInline container mode for widget embedding — mount inside any DOM element
FixedPrevented double OTP verification and sanitized post-login redirects
FixedFixed landing page flash on non-prerendered routes
FixedFixed pre-rendered content visibility on non-root routes
v0.8.0

AI Agents, Billing & Admin Tools

AI agent skill files, Stripe billing integration, and structured feedback context.

NewAI Agent Integration — skill files and documentation for AI agents to submit feedback
NewStripe billing with usage metering and plan limit enforcement
NewFeedback detail page with notes and external tracking links
NewContext column in feedback tables — attach structured metadata to feedback
NewStructured context data UI with raw JSON toggle
NewRobots.txt and sitemap.xml for SEO
NewDashboard link with user avatar in landing page navigation
NewPollenate dogfooding widget on production site
ImprovedImproved timezone handling with Luxon for correct UTC→local conversion
FixedRemoved loading spinner flash on landing page navigation
v0.7.0

Widget Analytics & Dashboard

Impression tracking, AG Grid feedback tables, and the embeddable widget.

NewWidget impression tracking and pageview analytics
NewAG Grid powered feedback table with sorting, filtering, and export
NewDashboard stats aggregation with trend analysis
NewEmbeddable feedback widget — single script tag, works anywhere
NewDocumentation page with comprehensive API reference
FixedFixed UTF-8 charset header for widget.js to fix emoji rendering
FixedAllowed any origin for widget public endpoints (CORS)
FixedImproved script tag detection for async loading
v0.1.0

Initial Release

The very first release of Pollenate Cloud — feedback collection platform built on Cloudflare Pages and Workers.

NewCore feedback collection API with support for thumbs, stars, NPS, CSAT, emoji, and text
NewReal-time dashboard with analytics
NewInbox management with API key authentication
NewUser authentication with OTP email login
NewCloudflare D1 database with Workers API