Changelog
New updates and improvements to NodumForms.
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
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
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
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
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
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)
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, Dropdown, Rating, Yes/No, Email, Phone, File Upload, CAPTCHA
- 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
- Font selection from curated library
- 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])
- Custom domain support with CNAME verification and automatic SSL
- 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, Custom Domains, 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
- 7 solution pages: Form Builder, Templates, Responses, Analytics, Custom Domains, Branding, Security
- Pricing page with plan comparison table and yearly/monthly toggle
- Enterprise page with SSO, white labelling, and API access 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, custom domains, 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
- Custom domain DNS verification endpoint
- 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
- reCAPTCHA verification on form submission
- DeepSeek AI content moderation for user suggestions
Infrastructure
- Next.js 14 with App Router
- PostgreSQL database via Prisma ORM
- Custom domain routing via middleware
- 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