News and blogs on our products, services, and events
Recently active
With the 2025.3 release, you can now connect to any generative AI model that offers an OpenAI compatible API, such as Gemini, Claude or Ollama. Giving you the freedom to select providers based on your technical requirements, compliance mandates, and budget without being locked into a single ecosystem.With this new capability you can use multiple models simultaneously, assigning lighter models to routine tasks like simple content generation or basic classification while reserving more powerful options for complex challenges such as detailed analysis or sophisticated reasoning tasks. This approach optimizes both performance and costs, allowing you to scale your AI usage economically without sacrificing quality where it matters most.When you want to switch providers or adopt newer models, you simply update your generative AI provider settings rather than rewriting your integration. This means you can adapt quickly as your needs evolve, as better models become available, or as pricing stru
Anyone who has worked with international teams knows how easily dates and numbers can cause confusion. A simple “03/05/2025” could mean May 3rd to one person and March 5th to another, while number formats – although less confusing – often vary just as much. Until now, the Thinkwise platform relied on browser settings to determine how numbers and dates were displayed, which worked in controlled environments but became unpredictable in Bring Your Own Device or consumer-facing scenarios. With the 2025.3 release, we are introducing a new advanced Localization feature that gives organizations control over how dates and numbers are displayed, ensuring that users always see information in the format that they expect. Date formattingDate formats vary across regions and contexts. The most common format is DMY: 01-05-2025 (DD-MM-YYYY). The notable exception is the United States, which infamously places the month first: 05-01-2025 (MM-DD-YYYY).We also support YMD formatting: 2025-05-01 (YYYY-MM-D
Recent React vulnerability - No impact on UniversalA recently disclosed critical 10/10 vulnerability in React Server Components was announced by the React team. You can read the official blog here:https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-componentsUniversal is not affected.Why Universal is not impactedUniversal is built as a static export using Next.js. Static exports do not use React Server Components or any server-side React code paths. Because the vulnerability only affects React Server Components, Universal is not vulnerable to this issue.Learn more about static exports here: https://nextjs.org/docs/pages/guides/static-exportsNext.js security advisoriesSeveral security advisories were also published for Next.js 14.1.4, the version currently used by Universal. These advisories all relate to server-side features.Since Universal is built as a static export and does not run server-side Next.js code, Universal is also not vulnerable to these issu
Dear community members,Although the year isn’t completely over yet, we can already proudly say that the Thinkwise ecosystem has once again experienced strong growth. We’re not only welcoming many new customers, but also seeing that our partners have hired dozens of new Thinkwise developers this year. These professionals have now been trained in our platform and are actively working on great projects – a fantastic development that highlights the strength of our community.At the same time, we’ve noticed that from time to time an external party offers services related to our platform. On the one hand, this is a sign of a thriving and attractive market, but it also raises questions among customers: Is this an official Thinkwise partner? Are their employees certified? What is Thinkwise’s opinion of this party? What about my SLA if I work with them?To avoid misunderstandings, we want to emphasize that Thinkwise does not make statements about non-official parties. Our advice is to work exclus
About a year ago we posted a blog on our community page, sharing some ideas we had for our Universal UI and asking for your thoughts. Back then, our challenge was to make the visuals more appealing, increase data density, and create a theme that felt truly universal.We knew right away this wasn’t something we could do on our own. That’s why we asked for your input and wow, did you deliver. The response was amazing, with so many of you taking the time to share feedback and ideas. Bart’s blog on the new Universal styling especially stood out and the support it received showed us just how powerful this collaboration can be. That experience gave us a lot of energy. It showed us that together we can really make a difference. So let’s keep that momentum going. With your creativity and input, we can make the Universal UI better than ever.This blog continues in that spirit. It follows the knowledge session I hosted together with my colleague Bart Metselaar on August 19th. In that session, now
In just 2 weeks, Theater Orpheus will set the stage for the Thinkwise Summit 2025. A full day of innovation, inspiration, and valuable connections with fellow Thinkwise users. Have you secured your spot yet? Register hereThis year’s highlight: the AI-UpcyclerWhat once seemed impossible is now reality: complete legacy systems, modernized automatically and at lightning speed. A true gamechanger you can experience at the Summit.Also on the agenda:✔ Customer cases from Ayvens, Koninklijke Vezet , Just Brands and more✔ Keynotes by Victor Mids and Richard van Hooijdonk✔ Networking, knowledge sharing, and exchanging ideas with the communityView the full program hereOnly 2 weeks to go – we’d love to welcome you there.
In any application it is important to validate a user’s input.Is the value of the order smaller than the maximum order value? Is the start-date earlier than the end-date? Does this action lead to a stock amount smaller than zero?There are a few options how you, as a developer, can implement these checks:Domain (using min/max value) Default Trigger Check constraintA closer lookLet’s take the following example and work out if and how we can implement its validation:Is the start-date earlier than the end-date?Domain Validation through a domain is not possible in this case since we need to compare two values Default Clear out the end-date field and send a warning to the user informing that the end-date should occur after the start date Advantage: The user is being informed while the data is being entered. Risk: Business rule is only being enforced on the screens where the default has been implemented. When this data is created through other means, for example a task or external interfa
It’s Friday afternoon when you get the following message from a user: “The application is slow” 😅. No other information—maybe a screenshot, if you’re lucky.But where do you start? There are many things that can make an application “slow.” And what does “slow” even mean? To begin identifying performance issues, it’s essential to have statistics—to know which procedures are slowing things down.The Thinkstore offers a new solution to help: the Application Log. What Is the Application Log?The Application Log is a way to track all tasks, subroutines (stored procedures), handlers, and triggers executed in your Thinkwise application.It logs the essentials, such as which procedure was executed, its parameter values, and execution time. It also captures other procedures that were called during the execution, giving you a clear view of what downstream code was triggeredAnother use case for the Application Log is business auditing. When combined with the ‘Trace Fields’ solution from the Thinksto
This is a follow-up to the Testwise introduction blog, read that first for the necessary context:Disclaimers: While a Record & Playback approach is a great way to start from having no automated tests, it does have a couple of disadvantages, some of which can be mitigated by replacing recorded steps with Testwise-provided reusable logic and helpers. Some of below steps are going to change when we automate steps that are currently being performed manually Depending on the versions you install; steps might differ Prerequisites:Install Visual Studio Code on Windows Install Node.js — Run JavaScript Everywhere In your File explorer, create a folder on your local device → this will be your test project name Go into the folder, select the navigation, replace with cmd and hit Enter This will open up your terminal in the right folder. Type code . and hit Enter. This will open up Visual Studio Code. In there press Ctrl + ~ which will open up the Terminal within Visual Studio Code,
Transport companies always have their eyes on the road—quite literally. With fleets spread across countries or even continents, it’s vital to know where every truck is and whether it has reached its destination. While GPS trackers are now standard in every vehicle, simply knowing it’s position isn’t always enough. That’s where geofencing comes in.By assigning a digital boundary—known as a geofence—to each location, companies can automatically determine whether a vehicle has arrived or left. If it’s within the shape, it’s on site; if it’s outside, it’s not. Simple as that.But managing all that location data can quickly become a challenge. That’s why the latest 2025.2 update to the Thinkwise Platform introduces a powerful, user-friendly way to work with maps. Users can now easily add markers, and draw circles, rectangles, lines, or complex polygons—directly within the application. It’s a major step forward in making geodata management faster, more intuitive, and integrated into your Thin
Planning lies at the heart of every successful organization. Whether you're allocating resources, managing personnel, or scheduling production, having the right tools in place can make all the difference. With the release of Thinkwise Platform 2025.2, we’re excited to introduce a powerful set of enhancements to our Scheduler component—designed to help you plan faster than ever.This update brings hierarchical resource grouping, external drag & drop, and the ability to apply conditional layouts to both resources and time cells. These features give you much more flexibility and control over your Scheduler.In this blog, I’ll guide you through the essentials of setting up a Scheduler in Thinkwise, exploring each new feature along the way. This blog is the first part in a series on using the Scheduler. This first part is focused on setting up the scheduler. The second part focuses on interacting with the scheduler, and can be found here: Scheduler setup guideIn this blog, we’ll create a
With release 2025.2, the filtering experience in the Universal UI has been significantly improved and expanded. The styling of the Default filter has been updated, making it more user friendly, and Advanced filter options have been introduced to support more detailed filtering capabilities.We strongly recommend placing the Filter button on the Action Bar, next to the Search field. This approach provides users with clear and immediate access to filtering functionality. From 2025.2 onward, an Enrichment can update existing Models and new Models have it by default.This blog outlines the thought process and design choices behind these updates, and aims to provide insight into how the filtering experience has evolved.Filter pop-upIt starts with the updated filter pop-up, which now combines default filtering, detail filtering, and advanced options in one central location. The default filter allows for quick and straightforward filtering, including detail filtering on specific fields. By togg
This is the second installment in our blog series on the Scheduler.In Part 1, we walked through the initial setup of the Scheduler. Now, in Part 2, we’ll explore how to effectively interact with the Scheduler to enhance usability and user experience.The Thinkwise Scheduler supports a variety of interaction methods, such as creating activities by clicking on empty time slots, editing them through double-click actions, and assigning external resources via drag-and-drop. In this blog, we’ll demonstrate each interaction technique and show you how to integrate them into the Scheduler we configured in the previous part. Interaction MethodsClick to create a new ActivityThis feature allows users to click a time cell to initiate a task for quick data entry directly in the scheduler.Start by creating a new task ‘project_planning_scheduler_add_activity’. Add task parameters for all fields that are needed to create a new activity:Assign this task as a table task to the scheduler view. To make thi
As a QA team within our Product Innovation department, we understand the need for efficient, reliable ways to test applications that are built to last forever. Quality is an essential pillar of our brand promise; we want you to trust our technology and enable you to develop your functionality 10X faster. See this old blog for some background reading on our role:We place a strong emphasis on end-to-end, user-focused testing—a shift-right approach—because it provides the level of confidence that we need to say we're delivering a quality product. For a system as complex as ours, investing in test automation is essential. It allows us to rely on consistent, repeatable checks, so that any manual testing efforts can be focused on where they’re most valuable: ensuring that new features and ongoing development meet our quality standards.Since we are shipping a low-code Platform -with which all of you build amazing Applications-quality is a shared responsibility. Both the quality of the Platfor
In an average Thinkwise application most data is displayed using a grid / form combination. For most data this makes sense, as you can search data in the grid and manage it in the form.Some data becomes clearer and easier to work with when visualized as a matrix, arranged in a grid of rows and columns similar to a table or spreadsheet. Unlike the standard Grid screen component, however, the rows and columns in an Editable pivot grid can be defined dynamically through data, offering much greater flexibility. The (previously well hidden) way to present matrix data in a Thinkwise application is using an Editable pivot grid.The Editable pivot grid has the following key characteristics:Quickly manage large amounts of data Recognizable to users because of similarity to tools like Excel Row and column values are defined in data. This allows for much greater flexibility than regular forms where columns are predefined.An example of how to use an Editable pivot grid to show matrix data is a prod
At the Thinkwise Developer Event 2025 I gave a technical session about how to get creative with cardlists using HTML. This accompanying blog is a short summary with practical pointers and code to get you started on creating your own HTML cardlists. What is a cardlist?The Cardlist is a screen component with the following characteristics:1 Column, no horizontal scrollbar, full width Variable ride height Fields on top of each other Responsive Read Only No Header Only for Universal GUI Cardlists are ideal for:Small device screens, like mobile phones and barcode scanners Navigation Mini dashboards Sometimes the result of a standard implementation within the Software Factory may produce a result that is not quite how you would like it. The fields are displayed below each other and it is possible to display 1 icon or thumbnail of an image. Example:With the 4 Tweaks below you can easily give your Card List a completely different look and feel. Soon you will find out that it is quite simple to
Transform, Optimize and AccelerateThe 5th edition of the Thinkwise Summit will take place on Wednesday, October 1, 2025, at Theater Orpheus in Apeldoorn. This Dutch-language event is all about smart digital transformation. Discover how leading organizations use the Thinkwise Platform to transform their core systems, optimize business processes, and accelerate application development. Get inspired by real-world cases, product innovations, and our future vision. Participation is free — reserve your spot today.👉 View the full program and register here
Hi everyone!,Often we hear developers wanting to test their system flows but not knowing what is an effective and quick way of doing so. This blog will help you out!To test System flows, we can make use of Indicium's Process flow API as described here: https://docs.thinkwisesoftware.com/docs/indicium/process_flows.htmlSince Indicium requires a POST request, some extra tooling is needed to send such a request. We commonly use either Insomnia or Postman, but alternatives are available online. For this blog, I'll use Insomnia.Creating a System flowStart of making or determining a system flow you would want to test.System flowFor my example, I kept it very simple. The Decision process action will run a process procedure to create a new record to the system_flow_table in my database.DesignControl procedureUsing InsomniaInsomnia is a powerful app what can do a lot, but for this example we'll create a new POST request.Start off by right clicking in the left panel (or use the shortcut Ctrl+N t
Join us on Thursday the 15th of May at 12:30 PM in this 30 minutes webinar in which Arie Versluis, our Strategic Product Manager, will share the high-level Roadmap for the Thinkwise Platform. He'll discuss the most important topics that will be addressed the coming 2-3 years.In this webinar he'll also introduce the Thinkwise Cloud offering and provide an update on our Universal Thinkwise (AI) Assistant (UTA).This webinar will be in English and is targeted towards our business-oriented stakeholders like IT Managers, Product Owners, Business Analysts. Do make sure to subscribe if you are interested, even if you can't make the date and time, so we can share the recording.NOTE: the content will be very similar to what has been discussed in the Roadmap session during the Developer Event on the 9th of April.Date & Time:Date: Thursday the 15th of May 2025Time: 12:30 PM - 1:00 PM Register now
Join us for a day filled with the latest technology, inspiring developer stories, and plenty of opportunities to connect with the Thinkwise Community. See how new functionality is brought to life, share your ideas, and spark meaningful conversations. Date: 9th of April 2025Time: 09:00 – 17:00Location: Landgoed de Horst, De Horst 1, 3971 KR Driebergen What to expect?Technical deep dives: Learn from the experts as they explore specific features and topics in detail. Community showcases: Be inspired by real-world stories and innovative use cases shared by fellow developers. Open spaces: Join open spaces to share your feedback on all things Thinkwise. We want to hear from you! Roadmap: An update on the roadmap for the Thinkwise Platform. Please note that this event will be in Dutch. Register now About meI am Remco Kort and for the past five years I have worked at Thinkwise as a platform engineer (consultant). I have always had an interest in sharing knowledge and engaging with the communit
On Wednesday, April 9, I gave a presentation at the Thinkwise Developer Event about the possibilities of the Action Bar. For those who couldn’t attend, I’ve outlined my presentation in this blog post. My blog ties in nicely with this blog by Bart Metselaar, in which he explains how to design user-friendly screens using UX principles. Changes Over TimeIn Platform Release 2025.1, the Toolbar Screen component has been replaced by the Action bar and the Custom action bar Screen components. These provide a more flexible and balanced action button and prefilter layout that better adapts to the available space. The updated styling integrates seamlessly with the rest of the UI as well.As a result you can now assign Tasks / Reports / Prefilters to dedicated Screen areas of the Screen type (similar to Detail groups), add Action bars with different configurations to a Screen type (for instance have a different Action bar above a Grid versus a Form), and determine the availability, order and Displ
UX around usAt the Developer Event of 2025, I was invited to tell my story: the importance of UX design and how you can use simple guidelines to optimize your products’ UX.User eXperience Design is an often-overlooked element in our complex world of core systems. We as developers can become accustomed to users working daily with our application, and assume these users (eventually) get used to the processes and tasks we develop for them. However, we can tremendously decrease complexity for our users when we take steps in our development processes to improve usability.EmpathyThe starting point is observing your user when using your product.Functionality is often considered “done” once it technically works. But especially for frequent or complex tasks, usability makes a difference. Ask the user to perform their task in the product and then watch and listen to what they are doing, so you gain insight into what works and what can be improved. Inform the user upfront to narrate everything th
SQL Server Management Studio has been the backbone for writing queries and managing SQL Server databases for a long time now. I’ve been using SSMS for well over a decade.A new kid on the block - Azure Data Studio - is gaining popularity. This IDE has been around for a couple of years now and is a close relative to Visual Studio Code. And with the possibility of plugging in extensions such as GitHub Copilot, I’ve recently completely switched to Azure Data Studio.In this blog, I’ll highlight some of the features of Azure Data Studio and suggest some key binding changes which I did make the transition from SSMS to Azure Data Studio easier. Familiarize yourself with F1Not unlike Visual Studio Code, virtually all commands, actions and settings can be done in Azure Data Studio via the F1 menu. If you want to do something and you don’t see a button - always press F1.The F1 menu of Azure Data Studio Tab display sizeThis may be a personal preference - I always ensure tabs are back to their orig
Previously, the container images both for the Universal GUI and Indicium Application Tier use port 80 to accept traffic.Starting from the release 2025.1.10 and newer, these images will use port 8080.Why this change?This is the first step towards rootless container images. Currently, the containers run under the user root. This is a bad container security practice. If a threat actor manages to get access to the container file-system, it can be abused.Luckily, the ASP.NET container image (which is the base image for Indicium) recently made it possible to run as a non-root user. Implementing this change will take a bit more time, but these changes should go unnoticed.Due to port privileges in the Linux kernel, ports below 1024 require root permissions. This creates an issue when running an application on port 80 without privileges.To permit future non-root users in opening a port, the published port will be moved from 80 to 8080.How will this impact me?If you have a running Universal or I
Hi everyone! This is my first blog, where I’ll explain some aspects of Form configuration in the Universal GUI. Let me introduce myself: I’m Mustafa Kazanc, new UX/UI Designer at Thinkwise and colleague of Bart Metselaar. In recent versions a couple of changes have been made to the behavior of the Form in the Universal GUI. This blog is meant to clarify the expected behavior and ways to override that behavior (based on Platform version 2024.3). 1. Default GUI behaviorThree key principles are applied to optimize the layout of Forms in the GUI, making it easier for users to navigate and input data efficiently. Principle 1 - Fields are stretched to cover the entire width of the Form Principle 2 - Fields are distributed following an N-pattern Principle 3 - Fields are dynamically positioned to minimize whitespace Principle 1: Fields are stretched to cover the entire width of the Form The Universal GUI divides the available width on the screen by the (minimum) Field width (px) to d
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.