Changelog

New features, improvements, and updates to GudForm.

1.3.0

Form Versioning & History

Form versioning is now live! Every time you publish changes to a form, GudForm automatically creates an immutable version snapshot. Historical responses remember which version they were submitted against, so you always see the correct question labels — even for questions you later removed or renamed.

What's New:

  • Immutable version snapshots created on publish
  • Responses pin to formVersionId for historical accuracy
  • Soft-delete for removed questions (preserves historical answers)
  • Breaking vs compatible change classification on publish
  • Version labels in response exports and CSV downloads

Why It Matters: When you remove or rename a question from a published form, historical responses still show the original question label that was presented to the user. No more mystery data from deleted fields or misleading exports where old answers show under new question titles.

Technical Details:

  • Version snapshots are immutable — they never change after creation
  • Responses store formVersionId to preserve schema context
  • Soft-delete with database RESTRICT protects historical data
  • Breaking changes: removed questions, type changes, required toggles, removed options
  • Compatible changes: reordering, renaming, editing descriptions, adding optional questions
1.2.0

Classic Display Mode for Forms

You can now choose between Conversational and Classic display modes for your forms.

What's New:

  • Classic mode shows all fields at once in a single-page stacked card layout
  • Toggle between modes in form settings without rebuilding
  • Responsive design works on mobile and desktop
  • Validation on submit with clear error messages

Why We Built It: While conversational forms excel at customer-facing surveys, many teams needed a single-page layout for internal tools, admin panels, and high-frequency data entry. Classic mode gives power users the efficiency they need by showing all questions at once.

How It Works: Both modes share the same form builder, validation, and webhook logic. You're just changing how fields are presented to users. Switch anytime without losing data or integration configs.

1.1.5

Improved Embed Share UX & Production URL Fix

We've improved the embed experience with better share UI and fixed a critical production URL issue.

What's Fixed:

  • Production embed URLs now use correct domain (no more localhost leaks)
  • Embed code modal shows accurate preview URLs
  • Copy button for embed snippet with success feedback

UX Improvements:

  • New embed settings panel with code preview
  • Choose between iframe and script embed types
  • Pre-configured height options (compact/auto/tall)
  • Auto-resize message handler for responsive iframe height
  • Max-width and overflow fixes for embedded forms
  • Preview SSO warning when testing on Vercel preview URLs

Technical Changes:

  • Embed URLs now respect NEXT_PUBLIC_APP_URL environment variable via getPublicBaseUrl()
  • Added URL validation in production builds
  • Improved error messaging for misconfigured domains
  • ?embed=1 query parameter for embed-optimized rendering
1.1.0

Cookie Banner Removed from Public Forms

The cookie consent banner no longer appears on public form pages (/f/*).

What Changed:

  • Cookie banner disabled on all /f/[slug] routes
  • Analytics still work for form owners (no PII collected)
  • Cleaner UX for form respondents
  • GDPR compliance maintained with minimal cookie footprint

Why: Form respondents were seeing cookie banners before they could even start filling out forms. Since GudForm only uses essential cookies on public forms (no tracking or ad pixels), the banner was unnecessary friction.

Technical Details:

  • Cookie banner component checks route and skips rendering on public forms
  • Session cookies remain for form state persistence
  • Dashboard and marketing pages still show banner where analytics cookies are used