Changelog

New updates and improvements to NodumForms.

v1.0.20

Resizable form width, redesigned rating picker, and builder polish

Forms can now be dragged to any width straight from the canvas, the rating block gets a redesigned icon picker with an optional border style, and a batch of builder refinements across the end-screen picker, rich-text toolbar, block conversion, and sidebar peek.

Form styling

  • Drag handles on the left and right edges of the form let you resize its width (320–1200px) directly on the canvas, with a live px readout
  • The chosen width persists through publish and is carried over when a form is duplicated
  • New `formMaxWidth` field threaded through the schema, form snapshots, collaboration sync, and the public form renderer (defaults to 780px)

Rating blocks

  • Replaced the inline icon row with a single trigger that opens a dedicated icon picker popover with inline colour selection
  • Added a "Borders" toggle for rating icons

Builder refinements

  • Renamed the "Organize" block menu to "Convert", and added hover tooltips describing each target block type
  • End-screen icon picker now renders in a portal with viewport-aware positioning and a two-step pick-icon-then-colour flow
  • Rich-text font-size control: paints a fake selection highlight while focused, selects its value on focus, and the preset dropdown always opens downward
  • Question text now respects its per-block alignment, and the input prefix follows the block placeholder colour

Bug fixes

  • Drag-and-drop now lands a block exactly where the drop indicator was painted by keeping the drop index in sync with the rendered position
  • Smoothed the sidebar peek so opening a peeked sidebar animates out instead of snapping
v1.0.19

V6 topbar — form-level chrome moves out of the sidebar

The form builder now features a Notion-style topbar above the canvas with breadcrumb navigation, Build/Responses mode tabs, undo/redo, publish, collaborate, settings, and an overflow menu for style, preview, and version history. The sidebar becomes a pure block-insertion + form-list surface.

Navigation

  • New FormTopbar with three-column grid: breadcrumb (left), Build/Responses mode tabs (center), and action buttons (right)
  • Mode tabs show icon-only when inactive, icon + label when active — with a green response-count badge
  • Overflow menu (⋯) provides access to live preview, version history, style, copy form link, and open form
  • Breadcrumb shows "My forms / {form name}" with workspace-aware label ("Shared with me" for collaborator forms)

Sidebar cleanup

  • Removed undo/redo/history/preview action rail from sidebar bottom — now in topbar
  • Removed publish pill from sidebar — now in topbar right cluster
  • Removed floating Style / Form Settings / Collaborate row from above the canvas — now in topbar
v1.0.18

Live multiplayer collaboration on the form builder

Two or more collaborators editing the same form now see each other in real time — live cursors, name labels, and edits that propagate across screens within ~50ms. Field-level edit locks prevent two people from typing into the same input at once.

Collaboration

  • Live cursors with name labels follow each peer's mouse over the canvas
  • Avatar stack in the autosave bar shows everyone currently viewing the form
  • Edits sync instantly across all open editors via a Supabase Realtime channel keyed by formId
  • Field-level advisory locks: when one user focuses a question, description, or option label, peers see that field disabled with an "Editing: {name}" pill in the holder's color
  • Locks evaporate automatically when a tab closes (presence-leave) — no stale locks
  • Per-option locks let two people co-edit the same multiple-choice block as long as they're in different options
  • Anonymous edit-token viewers join as "Guest editor" with a deterministic color

Internals

  • New `@supabase/supabase-js` browser client, lazily initialised — feature stays dormant unless `NEXT_PUBLIC_SUPABASE_URL` and `NEXT_PUBLIC_SUPABASE_ANON_KEY` are set
  • Realtime is purely a peer transport; Postgres via the existing Server Actions remains the source of truth
v1.0.17

Live preview no longer blanks out one-per-page forms

Fixed a builder regression where the live preview could render an empty card with both Back and Next buttons on one-question-per-page forms when the underlying pageIndex data had gaps (e.g. after deleting a page).

Bug fixes

  • Translate the builder's `currentPage` (a pageIndex value) into a visual array index before handing it to the preview, and pass blocks pre-sorted by pageIndex so the preview's pages array always lines up with what the canvas shows
v1.0.16

HTML tags no longer leak into the responses view or CSV export

If an option label in a multiple-choice, single-select, or dropdown question contained HTML, that markup was rendering as raw text in the responses summary chart, the responses table, and the CSV export. Option labels are now stripped to plain text wherever responses are shown or downloaded.

Bug fixes

  • Strip HTML from option labels in the per-question summary chart bars and the per-question detail drill-down
  • Strip HTML from option labels in the responses table cells and the individual response side panel
  • Strip HTML from CSV export column headers and the column picker chips so downloads contain plain text
v1.0.15

Cleaner sidebar rail on the responses page

The sidebar action rail on the responses page now hides the Version history and Preview icons (those only make sense while you're designing) and gives the Design link a labelled, wider pill so it's easier to spot when you want to jump back to the builder.

UX improvements

  • Hide the Version history and Preview icons in the sidebar action rail when viewing responses
  • Show a "Design" label next to the pencil icon and let the link expand to fill the freed-up space
v1.0.14

Checkbox style popover uses your form's colour palette

The Color and Background swatches in the per-option checkbox style popover now show your form's Primary / Secondary / Tertiary style colours instead of a generic six-colour preset — plus the existing default/transparent option and the custom-colour picker.

Builder

  • Pipe form style colours through to the CheckboxStylePopover so the swatch row matches what the rest of the block context panel already surfaces
  • Fix the custom-colour swatch wrapper missing `position: relative`, which let its hidden colour input escape the swatch bounds
v1.0.13

Custom unchecked background for checkbox-style options

Multiple choice, single select, and the standalone checkbox block now respect a dedicated background colour for their unchecked state on the live public form — matching what you set in the builder.

Builder

  • Render the new checkboxBgColor field on the public form for MC / SS option indicators and the standalone CHECKBOX block, so the unchecked-state fill set in the Checkbox style popover is visible to respondents
v1.0.12

Correct page labels in stacked builder view

Fixed a bug where the builder canvas could show a wrong page number (e.g. "Page 15") between blocks in one-per-page mode when underlying pageIndex values had gaps.

Bug fixes

  • Use the block's visual position for the "Page N" divider in the stacked one-per-page canvas, so labels always read 1, 2, 3… regardless of sparse pageIndex data
v1.0.11

Modal animations

Every modal in the app now eases in on open and eases out on close instead of flashing in and out. Powered by a shared animation hook so the entire app feels more responsive and polished.

Design updates

  • Form settings, Sharing, Delete form, Confirm, New form, Favicon crop, and Keyboard shortcuts modals pop in and pop out smoothly
  • Shared `useModalAnimation` / `useOpenModalAnimation` hook keeps timings consistent across the app
  • New `modal-pop-out` and `fade-out` CSS keyframes paired with the existing entrance animations
v1.0.10

Polished Beta welcome modal

The beta welcome modal is bigger, more polished, and now offers a direct path to share an idea alongside continuing into the app.

Design updates

  • Enlarge the beta welcome modal (~50% larger) with roomier padding and larger type for a more premium feel
  • Add a gradient overlay to the hero header so the title and tagline stay legible over the background art
  • Add a two-button footer: "Share an idea" links to the public suggestions board; "Continue to app" closes the modal
v1.0.9

Version history

Every form now keeps a history of every publish and an autosaved snapshot of your draft. Browse versions by date and restore any one back to your draft (a Publish is still required to make it live).

New features

  • Add Version history panel in the builder, opened from a new Form settings tab
  • Snapshot the form on every publish; autosaved draft snapshots are recorded at most once every 10 minutes
  • Preview any past version in a new tab without affecting the draft or published form
  • Restore a version to the draft (confirmation required); the live published form does not change until you click Publish changes
  • Per-form "Keep all versions" toggle — default is to keep the last 50
v1.0.8

New Landing Hero

The landing page hero now uses a single full-bleed background image (with mobile and desktop variants) in place of the previous interactive ribbon-and-icons scene.

Design updates

  • Replace landing hero ribbon/icons illustration and cursor-reactive parallax with full-bleed background images
  • Add separate mobile (portrait) and desktop hero background variants
  • Remove HeroGlow cursor-parallax component (no longer used)
v1.0.7

Dashboard Freshness

Recent forms now appear on the dashboard immediately after creating, deleting, duplicating, publishing, or editing — no reload needed.

Bug fixes

  • Fix dashboard sometimes showing stale forms after creating or duplicating one (router cache invalidation)
  • Fix deleted forms still appearing on the dashboard until a hard reload
  • Fix form title, status, and updatedAt changes not reflecting on the dashboard after editing or publishing
v1.0.6

Theme Text Contrast

Form text automatically adapts to high contrast against its background — white text on dark themes like Midnight, Neon, and Nordic; dark text on light themes.

UX improvements

  • Question labels, descriptions, and choice text now use white on dark-background themes
  • Form title and description (no-cover mode) adapt to the form body background colour
  • End screen title and message respect the form background — white text on dark themes
  • Progress bar page counter text adapts to the background colour
  • Rating and Yes/No unselected button text scales with the theme
  • File upload field text and icons adapt to dark backgrounds
  • Per-block background overrides also compute correct text contrast independently
v1.0.4

SEO, Rich Text Labels, Input Styling & Nav Overhaul

Major SEO improvements with OG images and structured data. Rich text now renders properly in form labels and end screens. New per-block input styling controls, Resources nav dropdown, and dozens of UX fixes.

SEO & metadata

  • Dynamic OG image and Twitter card with NodumForms™ branding
  • JSON-LD structured data: SoftwareApplication schema on all pages, FAQPage schema on homepage
  • Expanded sitemap from 4 to 17 pages covering all public routes
  • Robots.txt now blocks dashboard, API, and auth routes from crawlers
  • Richer meta descriptions, keywords, canonical URLs, and author metadata

Builder & preview

  • HTML rich text now renders in form field labels, descriptions, options, and end screen (no more raw <font> tags)
  • New per-block input field styling: background color, custom placeholder text, and placeholder color
  • Text alignment buttons (left, center, right) added to rich text toolbar
  • Block drag reorder now updates instantly without page reload
  • Wider block menu dropdown with stacked layout for input field controls
  • Placeholder text input saves on blur instead of every keystroke (eliminates lag)
  • All block styling changes now tracked in unpublished changes indicator
  • Fix page background color flash during block drag
  • Fix publish slug mismatch causing "Form not found" on submit
  • New block fields included in publish snapshot

Navigation & landing page

  • New Resources dropdown in navbar: About, Changelog, Help Center, Status, Suggestions
  • Footer reorganized with all public pages in Product, Resources, and Company columns
  • Mobile Solutions dropdown now animates open/close with smooth CSS grid transition
  • Fixed hero demo confetti/cursor bleeding through mobile nav overlay
  • Fixed announcement banner scroll flicker with hysteresis thresholds
  • Smoother hero cursor animation: cubic easing, softer shadow, subtle tilt
  • Header z-index raised to prevent page content overlapping nav dropdowns
  • NodumForms™ trademark symbol added across all branding
  • Logo SVG viewBox widened to prevent text clipping

Public form fixes

  • Input fields now have explicit white background for contrast on dark block backgrounds
  • Option labels render HTML and use font-medium to match question styling
  • Preview bar uses solid background with proper contrast and button tooltips
v1.0.3

Email System, Color Pickers & Builder Fixes

Full email integration with Mailtrap — welcome emails, response notifications, and configurable weekly digests. Plus color picker fixes, preview panel actions, and HTML stripping for form titles.

Email system

  • Welcome email sent automatically when new users sign up
  • Response notification emails now powered by Mailtrap API
  • Weekly digest email summarizing new responses across all forms
  • Digest configurable per-user: toggle on/off and pick which day to receive it
  • Per-form digest inclusion toggle in form settings
  • Account settings page with email notification preferences
  • Daily cron job at 9 AM UTC triggers digest for users whose chosen day matches

Builder fixes

  • Custom color pickers no longer close while dragging — works for cover, block background, and text colors
  • Preview panel now has refresh, scroll to top, and close buttons in a sticky toolbar
  • Form card uses overflow: clip so popovers are no longer cut off while cover images still round to border radius
  • Block tooltips and all tooltips disabled on mobile/touch devices
  • Fixed HTML tags showing in form titles on the dashboard new responses list
  • Fixed HTML tags showing in email notification subjects
v1.0.2

Block Tooltips, Phone Redesign & Publish Change Tracking

Rich preview tooltips on sidebar blocks, redesigned phone and dropdown inputs with search, and a smart publish system that tracks exactly what changed with per-item revert.

Builder improvements

  • Rich SVG preview tooltips on sidebar block hover showing a visual preview and description
  • Phone block redesigned with country code dropdown selector — searchable across 42 countries
  • Builder preview panel now syncs with the current page and reflects page background color
  • Submit button works in preview mode to preview the end screen without submitting data
  • Fixed empty question and description placeholder text overlapping block content
  • Description field now shrink-wraps to its content width instead of stretching full-width

Publish & change tracking

  • Unpublished changes detection now compares actual content against published snapshot instead of timestamps
  • Changes panel shows exactly what changed (e.g. "Updated title", "Added block", "Border style")
  • Per-item revert buttons to undo individual changes back to the published version
  • Revert all button to reset everything to the published state in one click
  • Reverts persist to the database — form fields, blocks, and positions all saved correctly
  • Reverting all changes clears the "Unpublished changes" indicator automatically

Public form improvements

  • Dropdown block now uses a custom searchable dropdown instead of native <select>
  • Phone field has a searchable country code selector with dial codes
  • Dropdowns render via portal so they are never clipped by overflow containers
v1.0.1

Builder UX, Keyboard Shortcuts, Status System & 50+ Bug Fixes

Major quality update — drag-and-drop improvements, Notion-style tooltips on every button, 28 keyboard shortcuts, a full DB-backed status page, and dozens of bug fixes across the entire app.

Builder improvements

  • Drag blocks by grabbing anywhere on the block — not just the grip handle
  • Smart cursor: grab on block body, text cursor on inputs, pointer on buttons
  • Scroll wheel works while dragging blocks or placing new blocks from the sidebar
  • One-per-page forms: blocks now insert at the exact drop position, not always at the end
  • One-per-page forms: block reordering works correctly via page reorder
  • Click outside the form card to deselect the selected block
  • Question and description fields sized closer to content for more grab space
  • 3D page transition animations for multi-page published forms
  • Enter key advances between fields on published forms with 500ms cooldown
  • Form card action buttons appear in a floating toolbar with background on hover
  • Sidebar New Form and Keyboard Shortcuts buttons are more compact and subtle

Tooltips & keyboard shortcuts

  • Notion-style tooltips on every interactive element with keyboard shortcut badges
  • Full keyboard shortcuts modal (Ctrl+Alt+/) with categories, search, and highlight
  • Ctrl+Enter to publish, Ctrl+D to duplicate block, [ to toggle sidebar
  • Ctrl+Shift+P for preview, Ctrl+Shift+N for new page, Ctrl+Shift+S for settings
  • Ctrl+Alt+R for responses, Ctrl+Alt+D for builder, Ctrl+Shift+H for dashboard
  • 1/2/3 keys to switch response tabs (Individual/Summary/Table)
  • 28 keyboard shortcuts total across 6 categories

Status system

  • DB-backed status page with real service health data and uptime records
  • Admin panel at /status/admin with password-protected access
  • Maintenance mode banner across app and auth pages
  • Incident management: create, edit, resolve, and delete with affected services
  • Auto-refresh every 60 seconds on public status page
  • Overall uptime percentage with colour-coded thresholds
  • Custom maintenance message support

Public form UX

  • Auto-scroll to first validation error with field focus
  • Red border and background on invalid fields (all field types including Rating/Yes-No)
  • Submit button shows spinner animation during submission
  • Placeholder text on Short Text and Long Text fields
  • Larger touch targets for mobile (increased padding)
  • Form-specific 404 page instead of generic "Page not found"
  • OpenGraph description metadata for social sharing
  • Published form URL updates to match current title on publish

Bug fixes (50+)

  • Block menu no longer clipped by overflow-hidden containers
  • Option labels now persist when edited in block settings
  • Cascade deletes on all database relations (no more orphaned records)
  • Authentication checks run before data loading on all pages
  • Form settings modal loads in parallel (faster open)
  • Slug and shortId generation uses retry-on-collision (no more race conditions)
  • File download endpoint hardened against path traversal
  • RATING and YES_NO validation rejects invalid array values
  • Response timestamps show time (was date-only)
  • Duplicate form copies all fields including branding and favicon
  • Stripe price validation filters undefined environment variables
  • Debug and notify API routes require authentication
  • Rich text input strips script tags from initial values
  • Domain verify distinguishes non-existent domains from missing CNAME
  • Webhook and email notification failures are now logged
  • Schedule validation prevents close date before open date
  • Keyboard shortcuts avoid browser conflicts (DevTools, hard refresh)
  • Maintenance banner gracefully handles database failures
  • Mobile viewport uses dvh for proper dynamic height

App polish

  • Last modified timestamps on form cards (relative time: "2h ago")
  • Global focus-visible ring styles for keyboard navigation
  • Improved empty state in canvas with icon and instructions
  • Filtered empty state in responses table
  • HTML tags stripped from form titles in settings modal
  • Status page link added to marketing navbar
  • Pricing data updated to reflect beta (unlimited forms and responses)
v1.0.0

Launch

The first public release of NodumForms — a fully customisable form builder.

Form builder

  • Drag-and-drop form builder with real-time canvas editing
  • 10 block types: Short Text, Long Text, Multiple Choice, Single Select, Dropdown, Rating, Yes/No, Email, Phone, File Upload
  • 2 form layouts: Standard (all questions on one page) and One Per Page
  • 30 built-in themes with full colour customisation and complementary page background colours
  • Cover images and solid colour covers with position control
  • Custom button styling: submit, next, and previous buttons with colour, text, and border radius
  • Progress bar with two styles (line and bubble) and custom colours
  • Custom end screen with title, message, icon selection, and background image
  • Page background colour picker — customise the area outside the form card
  • Logo upload support
  • Block-level styling: background colour, spacing, and padding controls
  • Spacing handles for visual adjustment (toggleable per user)
  • Autosave with visual indicator
  • Multi-page form support with page reordering, adding, and deleting
  • Block duplication, deletion, and reordering via drag-and-drop
  • Insert blocks at specific positions
  • Inline live preview panel toggled from the top bar
  • Mobile-responsive: responses and publish settings accessible on mobile, builder desktop-only

Templates

  • 16 templates (Blank + 15 categorised) across 5 categories: Business, Education, Marketing, Events, Research
  • Theme picker with 30 themes applied during form creation
  • 3-step creation flow: choose layout → pick template → select theme
  • Category filter tabs in the template picker

Responses

  • Response collection via public form URLs
  • Table view with cursor-based pagination
  • Individual response detail panel
  • Response summary with charts: bar charts for choices, distribution for ratings, counts for Yes/No
  • CSV export with column selection and metadata toggles
  • Bulk delete and individual delete
  • Submission timestamp and time-to-complete tracking
  • New response indicators with count badges
  • IP hashing for privacy-preserving duplicate detection

Publishing & sharing

  • Publish/unpublish forms with snapshot-based versioning
  • Shareable public links via short ID and slug (/f/[shortId]/[slug])
  • Show/hide NodumForms branding toggle
  • Form scheduling with open and close dates
  • Close message and redirect URL after submission
  • Webhook notifications on form submission (POST with full answer payload)
  • Email notifications on form submission

Authentication & accounts

  • Clerk-powered authentication with email/password and OAuth (Google, GitHub)
  • Sign-in, sign-up, and forgot password pages
  • Onboarding flow for new users
  • Account settings page with plan info, usage stats, and branding toggle
  • User profile, security, and connected accounts via Clerk modals

Billing & plans

  • Three plans: Free, Pro ($5/month or $40/year), and Enterprise (custom)
  • Stripe integration for subscription management
  • Billing portal for payment method and invoice management
  • Automatic plan enforcement: form limits, response limits, feature gates
  • Upgrade/downgrade with prorated billing

Search & navigation

  • Global command palette (Ctrl+K) searching forms, blocks, responses, and settings
  • Collapsible sidebar with form list, block library, and notifications
  • Block library with drag-and-drop from sidebar to canvas
  • Sidebar peek on hover when collapsed
  • Mobile hamburger menu and bottom navigation

Help centre

  • Full help centre at /help with search bar, topic grid, popular articles, and FAQ
  • 6 help topics with 30 articles: Getting Started, Form Builder, Responses, Branding & Themes, Billing & Plans
  • Individual topic pages with expandable article accordion and cross-navigation
  • Contact support CTA on every help page

System pages

  • /about page with animated floating form elements, scroll-triggered fade-ins, and animated stat counters
  • /changelog page with versioned release history
  • /status page with 14 services across 4 groups, 90-day uptime history, and incident timeline
  • Comprehensive privacy policy and terms of service

Marketing site

  • Notion-inspired design system with custom colour tokens and typography
  • Homepage with interactive hero, cursor-reactive glow, floating SVG illustrations, and parallax scrolling
  • 6 solution pages: Form Builder, Templates, Responses, Analytics, Branding, Security
  • Pricing page with plan comparison table and yearly/monthly toggle
  • Enterprise page with white labelling, dedicated support, and DPA details
  • Suggestions and roadmap page with user voting and admin moderation
  • FAQ accordion on homepage and solution pages
  • Responsive header with mobile navigation drawer
  • Footer with product, resources, and company link columns

Beta mode

  • All Pro features unlocked for free users during beta
  • File uploads, branding removal, custom logo, and response filtering available to all
  • Pricing page reflects beta access

API & integrations

  • Form submission endpoint with validation, scheduling, and rate limiting
  • File upload endpoint (5MB limit, PDF/DOC/images)
  • File download endpoint for uploaded attachments
  • Stripe checkout and portal endpoints
  • Clerk webhook for user lifecycle sync
  • Stripe webhook for subscription event handling
  • Outgoing webhook support per form with full answer payload
  • DeepSeek AI content moderation for user suggestions

Infrastructure

  • Next.js 14 with App Router
  • PostgreSQL database via Prisma ORM
  • Server actions for all CRUD operations with ownership validation
  • Optimistic UI updates: instant form delete, soft navigation on duplicate, real-time sidebar sync
  • Published form snapshots (JSON) for stable public forms