WaveMaker 11.15.0 - Release date: 8 February 2026
Features
Studio
Profiles & Property Management Simplified
WaveMaker has reworked how application, service, connector, and prefab properties are managed across profiles. Default values are now sourced directly from their respective configuration files, and profile entries are created only when a user explicitly overrides a value.
This change eliminates property duplication, improves version control clarity, and enables consistent, build-once deploy-anywhere workflows. See the detailed documentation for structure changes, migration behavior, and deployment implications.
Studio Design Update: All Controls Consolidated into a Single Top Nav Bar
The Studio design has been streamlined by merging the secondary top bar into the primary top bar, reducing visual clutter and improving discoverability of frequently used actions.
This update reorganizes menus and controls into a single, consistent header layout while preserving existing functionality. Several items have been repositioned to align better with user workflows, improve canvas focus, and create clearer separation between project context, page actions, and global settings.
Users may notice changes in where certain options appear, but no capabilities have been removed—only consolidated and better organized.
Refer to the image below for a clear understanding of the UI changes and their new locations.

Debounced Auto-Save in Design Workspace
Implemented an Auto-Save mechanism that automatically persists the user's data. The system monitors user interactions (such as typing or canvas interaction) and triggers a save operation after 5 seconds of inactivity(debouncing operation ) following the last user input. This ensures data is saved efficiently and improves user experience.
The auto-save process resets the timer on every interaction, ensuring that data is only saved once the user pauses, preventing frequent or redundant saves during continuous input.
Live save status display in the header showing "Saving..." and "Saved" states based on API responses.
How Auto-Save Works (Use Case) The user starts typing or interacting with the canvas (e.g., drag and drop, delete, copy, paste, template or layout selection, property changes). A 5-second inactivity timer is started. If the user interacts again within 5 seconds: The previous timer is cleared. A new 5-second timer is initiated. While changes are pending and the save request is being prepared: The header displays the status “Saving…”.
If no interaction occurs for 5 seconds: The auto-save API is triggered automatically. Upon successful API response: The data is persisted and synced with the backend. The header status updates to “Saved”, confirming successful completion.
This implementation follows a debounced auto-saving approach, ensuring efficient API usage and a seamless user experience.
Enhancements
Web
Async Support Added to `App.onBeforeServiceCall`
Previously, App.onBeforeServiceCall only worked with synchronous logic. The framework expected the request object to be returned immediately.
That meant any asynchronous modification like generating tokens, fetching keys, or encrypting headers silently failed. The API call triggered before your async code finished, and your changes were ignored.
Earlier Behavior (Async Logic Did NOT Work)
- Async code starts running
- API call is triggered immediately
- Header update finishes too late
- Request is sent without
x-token
What’s New
App.onBeforeServiceCall now supports:
- Synchronous returns
- Promises
- Conditional sync + async logic
async / await
The API call waits until the request is fully resolved.
Supported Usage (All Scenarios)
Case 1: Synchronous Modification
- Works as before
- API call uses the modified request
Case 2: Asynchronous Modification (Promise)
- Promises are fully supported
- API call waits for async completion
Case 3: Conditional Sync or Async Logic
- Works correctly in mixed scenarios
- Always returns the final request
Case 4: Using async / await
- Clean and readable
- Fully supported
- Request is modified before the API call
If you rely on async logic—security headers, tokens, encryption, conditional auth— this hook now behaves the way you always expected it to.
Programmatically Access Widgets in Tabs, Accordions, and Wizards
Accessing widgets inside Dynamic widgets like Tabs, Accordion, and Wizard is tricky. To simplify this, we now expose a dedicated method that allows you to programmatically access internal widgets with ease.
Syntax:
Parameters: widgetName (Required): Name of the widget to access. index (Optional): Zero-based pane index (Tab / Accordion pane / Wizard step).
Returns: With index: An array containing the matching widget from the specified pane. Without index: An array of matching widgets from all panes of the dynamic widget.
Example:
ESLint Inspection Integrated into Angular UI Builds
WaveMaker now supports running ESLint inspections as part of the Angular UI build and deployment process. A new inspection step can be enabled in CI/CD to automatically analyze UI code during build and report linting and code-quality issues.
This inspection is optional, configurable, and runs only for Angular-based builds. Teams can choose to log issues for visibility or enforce strict quality gates by failing the build when critical ESLint errors are detected.
This enhancement helps catch UI issues early in the pipeline, improves consistency across projects, and enables better code-quality enforcement in automated builds. Refer to the detailed documentation for configuration options, build conditions, and enforcement behavior.
React Native
Toggle (Switch) Widget: Consistent Circle Size Across ON and OFF States
Toast Notification Widget: New Customization Options
Panel Widget: Custom Icons for Collapsed and Expanded States
Wizard Widget: Display All Step Titles Simultaneously
Accordion Widget: Subheading Fix and Icon Direction Option
Chip Widget: Enable Styling for Item Text
Select Dropdown Component: Spacing Consistency Across Android and iOS
Accordion Widget: Base View/Class Exposed for Title Styling
A common base view/class has been introduced for the Accordion title, enabling consistent and reusable styling across applications.
- The Accordion title should support:
- A configurable background color
- An icon alongside the title text
- Styling should be applied through a common view or base class, enabling reuse and consistency across applications.
Bug Fixes
- Resolved a UI glitch where dragging and dropping the locale widget caused a slanted line to appear.
- Fixed custom accordion title icons not rendering when a custom icon class is applied.
- Resolved issues in localized message settings where Save and Cancel buttons were not visible after format changes.
- Fixed a bug where the Save dialog did not close after adding and saving localized messages.
- Fixed data loss when switching between Query and Procedure tabs in the Database section.
- Resolved an issue where database schema changes were not getting saved due to console errors.
- Fixed misalignment of query result table headers when displaying large numbers of columns.
- Updated SQL Server procedure execution to use
EXECinstead ofCALLby default. - Fixed syntax errors occurring while executing database procedures.
- Improved Canvas usability by showing the current page context in Script and CSS tabs.
- Added missing Help link on the Localization Messages page.
- Fixed dialog boxes (New/Edit/Delete) opening behind popovers when datatables are used inside popovers.
- Resolved an issue where delete action dialogs appeared empty in datatables.
- Fixed incorrect rendering of selected tab data when switching between tabs.
- Fixed navigation failures caused by breadcrumb label values referencing undefined widgets.
- Resolved intermittent blank page issues while navigating between paginated datatable pages.
- Fixed URL handling where page names were incorrectly appended when redirect URLs contained query parameters.
- Fixed prefab rendering issues when
showInDeviceproperty is applied to prefab containers. - Prevented multiple wizard action callbacks triggered by concurrent clicks.
- Fixed i18n issues in locally deployed Angular projects packaged as Angular ZIPs.
- Fixed inline datatable row expand/collapse not working when multi-select is enabled.
- Fixed project name wrapping issues when long names overflow to the next line.
- Removed WaveMaker option from deployment build settings in Prism projects.
- Added support for asynchronous handling in
App.onBeforeServiceCall. - Fixed cards widget where “items per page” selection did not update results at runtime.
- Resolved Studio scrolling issues preventing users from viewing full pages.
- Fixed number widget behavior where passing
nulldefaulted incorrectly to0. - Fixed issues saving table rows using the Tab key.
- Resolved form widget layout breakage when fixed height and width values are applied on web.
- Fixed navigation failures after importing Web Services or creating Java Services.
- Fixed Save and Discard buttons remaining enabled after saving AD configuration.
- Resolved datetime picker overlap with page scrollbar.
- Fixed file workspace overlapping with the inspect panel.
- Fixed select widget configuration issues with custom formatter parameters.
- Resolved widget selection issues after disabling widgets in Studio.
- Added validation support for Chips widget.
- Fixed intermittent visibility issues for container content and page parameter properties.
- Added hint property support for RadioSet widget.
- Fixed number field validation issues.
- Resolved offline app deployment failures caused by ESLint module installation errors.
- Fixed select filter state not retaining in multi-column filters.
- Added delete options for projects and branches in Team Portal.
- Fixed datatable page size selection not reflecting correctly in server-side pagination.
- Fixed script tab formatting and syntax highlighting loss after saving.
- Fixed incorrect tooltip value formatting in single Y-axis bar charts.
- Fixed Studio crashes caused by out-of-memory errors when loading Google Maps prefabs.
- Fixed design tab changes not persisting after switching between Style and Markup tabs.
- Fixed incorrect multipart/form-data content type in REST API payloads.
- Fixed autocomplete and popover loading and styling issues in CSP-enabled projects.
- Fixed Studio View Changes, Push, and Pull operations failing after app reload.
- Fixed prefab app environment values not getting saved.
- Fixed alignment issues in CheckboxSet filter options in property panel.
- Fixed query result headers detaching from result rows.
- Improved variable search functionality in Studio.
- Fixed conditional classes not consistently applying to Chips widget default values.
- Fixed calendar date highlight not persisting on hover.
- Fixed header inline content not rendering in preview mode.
- Fixed an issue where Wavepulse QR enablement failed to launch the RN app.
- Fixed Camera widget
onSuccessevent not triggering during video recording. - Fixed spacing issues where Bottom Sheet content overlapped with the Bottom Navigation Bar.
Technology Stack
WaveMaker Studio
UI Frameworks (Web and Mobile)
| Description | JS Library | Version |
|---|---|---|
| JS Binding | jquery | 3.7.1 |
| jquery-ui* | 1.13.3 | |
| MVC Framework | Angular | 18.2.13 |
| ngx-bootstrap | 9.0.0 | |
| Styles | bootstrap | 3.3.7 |
| Charting | d3 | 7.8.5 |
| nvd3 | 1.8.11 | |
| Fullcalendar | 6.1.15 | |
| Built-in functions | lodash-es | 4.17.21 |
| Device support, gestures | hammerjs | 2.0.8 |
Backend Frameworks (Web and Mobile)
| Description | Java Library | Version | |
|---|---|---|---|
| Spring Framework | 6.2.12 -> 6.2.15 | ||
| Security framework | Spring Security | 6.5.6 -> 6.5.7 | |
| Spring Data | 2025.0.5 -> 2025.0.7 | ||
| Spring Boot | 3.5.6 -> 3.5.9 | ||
| Spring Session | 3.5.2 -> 3.5.4 | ||
| Java JSON utilities | Gson | 2.13.2 | |
| DB Persistence library | Hibernate(Jakarta) | 5.6.15. Final | |
| Sample database | HSQL | 2.7.4 | |
| JSON library | Jackson | 2.20.0 -> 2.20.1 | |
| Logging framework | SLF4j | 2.0.17 | |
| Logging Implementation | Log4j2 | 2.25.2 -> 2.25.3 | |
| Http client library | HttpComponents - httpclient | 5.5.1 | |
| Servlet Framework | 6.0.0 | ||
| Database Connection Pooling | HikariCP | 7.0.2 | |
| Commons Lang3 | 3.19.0 | ||
| Guava | 33.5.0-jre | ||
| Postgresql Driver | 42.7.8 | ||
| Hibernate Validator | 8.0.2.Final | ||
| Jgit | 7.4.0.202509020913-r | ||
| Commons Codec | 1.18.0 | ||
| Commons IO | 2.19.0 | ||
| Commons Text | 1.13.1 | ||
| Antisamy | 1.7.7 | ||
| Freemarker | 2.3.34 | ||
| Apache Tika | 3.2.3 | ||
| Mariadb JDBC Driver | 3.5.2 | ||
| Mongodb Driver | 5.6.1 -> 5.6.2 | ||
| Jakarta Validation Api | 3.1.1 | ||
| commons-validator | 1.10.0 | ||
| json-smart | 2.5.2 |
Web
Runtime Environment
| Description | Version |
|---|---|
| JDK | 21.0.6 |
| WebSphere Liberty | 23.0.0.9+ |
| JBoss Wildfly | 27+ |
| Tomcat | 10.1.39 |
This is the default Tomcat runtime support. Apps can be deployed to any standard Java Web Server running on JDK 11. For more information, see here.
Angular Web
| Description | Version | |
|---|---|---|
| Java | 21.0.6 | |
| Node | 22.18.0 | |
| Maven | 3.9.11 -> 3.9.12 | |
| npm | 10.9.3 | |
| Ant | 1.10.11 |
For more information about building projects with Maven, see here.
Mobile (React Native)
Environment Setup
| Description | Version | |
|---|---|---|
| Java | 17 | |
| Node | 22.11.0 | |
| Maven | 3.9.9 | |
| npm | 10.9.0 | |
| Android Studio | Meerkat 2024.3.1 to Narwhal 4 Feature Drop 2025.1.4 | |
| Xcode | 16.2 to 26 | |
| SDK Build Tools | 36.0.0 | |
| wm-reactnative-cli | 1.9.3 -> 1.9.5 | |
| Android Gradle Plugin (AGP) | 8.14.3 |
SDK Update
| Description | Version |
|---|---|
| Expo | 54.0.12 |
| React Native | 0.81.4 |