Skip to main content
Version: 2026.3

Develop an application

This topic provides a high-level overview of the required steps to create a minimum viable product with the Thinkwise Software Factory. Each step contains a link to more detailed documentation about the subject. For a large application, develop a minimum viable product one module at a time. Then extend the application from there.

note

This process does not cover creating the specification for your application. You can create a specification in the Specification menu or with an external tool.

tip

You can find definitions of Thinkwise-specific terminology in our Glossary of terms.

Prepare to build a Thinkwise application​

Before you start building an application, make the following preparations:

  • Required:

  • Optional:

    • Connect the Thinkwise Platform to an MCP client, such as Claude Code, to develop applications using AI. For more information, see Set up MCP in the Thinkwise Platform.
    • Upcycle your legacy applications with the Thinkwise Upcycler to get a head start on your new Thinkwise application. For more information, see Upcycler.
    • Application languages you want to support in your application.
    • A model with a standard branch structure.
    • House style requirements, if applicable.
    • Existing components that you want to use, if available:
      • Solutions from the Thinkstore. For more information, see Thinkstore.
      • Icons, themes, and other visual assets.
      • Domains, screen types, and other model components.

Use generative AI to develop an application​

If you have set up an MCP client, you can use generative AI to develop your application. See Set up MCP in the Thinkwise Platform for the setup instructions.

warning

Set the MAIN branch to Read-only before you use MCP to develop in the Software Factory. This prevents the AI agent from making changes to your main branch.

Use the following general guidelines when developing with generative AI:

  • If you are developing from scratch, it is best practice to first use Plan mode. This is similar to writing a specification for your application before actually building it. Describe the overall structure, components, and behavior of your application in the prompt. Claude Code will present you with a plan based on your description. See also Analyze before you edit with plan mode. You can then add comments or make adjustments to the plan before proceeding with the actual development.

  • Work towards a Minimum Viable Product (MVP) for your application. This allows you to validate the core functionality and gather feedback early in the development process. You can later extend the application by adding more features and refining existing ones based on feedback and testing.

  • Use the steps on this page to split up your work into phases, where you focus on one aspect of the application at a time. This helps manage complexity and ensures that each part of the application is well thought out before moving on to the next phase. For example, first focus on defining the data model, including tables, columns, and relationships, before moving on to other aspects such as user interface and business logic.

  • Test each phase before moving on to the next one. This ensures that any issues are caught early and that each component functions correctly within the overall application.

    tip

    It is possible to review your code using the command /code-review in the Claude Code CLI. Alternatively, start a new session and ask Claude Code to review your code. Note that this does not replace thorough testing and code review by developers.

Use AI skills to support the development process​

Thinkwise provides skills that you can add to your development environment to extend the capabilities of your AI assistant. A skill is a packaged set of instructions that guides an assistant through a specific, recurring type of task. Skills can significantly speed up your development workflow by providing immediate guidance and automating repetitive tasks.

note

The process below is described for Claude Code, however, the skills can be used with other AI assistants as well. Add the files to your development environment, then ask GitHub Copilot to move them to the appropriate skill directories.

Claude Code automatically loads and applies skills when relevant tasks are detected. For example, Claude can load skills when you are creating a control procedure, setting up a cube, or configuring a process flow.

Claude Code looks for skills in two places:

ScopePathApplies to
Personal~/.claude/skills/<skill-name>/All your projects
Project<your-project>/.claude/skills/<skill-name>/Just that one project

To use skills with Claude Code:

  1. Download the skills from Thinkwise GitHub.
  2. Add the skills to either your personal or project skill directory as described in the table above.
  3. Claude Code automatically invokes the relevant skills based on the context of your entered prompt. It is also possible to invoke skills directly using the Claude CLI, using the /skill-name command. For more information, see Extend Claude with skills.

Set up a new Thinkwise application​

Create a model​

If you haven’t created a model yet, follow the steps below to create one. See also model.

menu Models > Model overview

  1. Execute the task Create model Create model.
  2. Confirm that you want to start working on the model that you just created.

Create domains​

See also domains.

tip
  • You can also create domains when working on the data model.
  • If you have existing domains that you want to use, you can import them.

menu Data > Domains

  1. Create the domains that you need. Domains connect table columns to their user interface representation. It depends on the data types that are present in your specification which domains you need to define.
  2. If you create a domain that requires defining static elements, add them on the Elements tab. Examples of such data types are the bit and tinyint data types.

Create the data model​

See also data model.

menu Data > Data model

  1. Go to the tab Tables.
  2. Add the tables of your data model. Your tables represent screens in your application. You can customize these screens later when you define your screen types.
  3. Add columns to your tables and define their properties in accordance with your dataset.
tip

We recommend that you do not set your column types to Hidden, to make development easier. You can further restrict access to columns when you define your subjects.

  1. Go to the tab Design.
  2. Add references between the tables. You can also do that on the References tab.
  3. Go to the tab Validation.
  4. Validate your data model.

Create one or more menus​

See also menus.

menu User interface > Menus

  1. Add at least one menu. You can create a list bar, a tile menu, or a tree view menu.
  2. Go to the tab Design.
  3. Create a group for each main menu item.
  4. Drag and drop one or more of the available tables into each menu group. Each of these tables will become a menu item.

Add translations​

menu User interface > Translations

Optionally, add translations for the items that you have created so far. If you choose not to do this yet, the user interface texts will be displayed between square brackets.

Create a database for your application​

See also creation.

menu Deployment > Create

  1. On the tab Generate definition, execute the task Generate definition Generate definition. Once the progress bar reaches 100%, your model definition is ready.
  2. On the tab Validate definition, execute the task Execute all validations run. A validation is run on multiple validation groups, and a report is created for each group. The icons in front of each validation group indicates whether the validation was successful.
note

If you encounter an error, you must resolve it before you can continue. If you encounter a warning or information icon, read the message carefully and resolve the issue if possible.

  1. On the tab Generate source code, execute the task Generate source code run. Once the progress bar reaches 100%, your source code is ready.
  2. On the tab Execute source code, execute the task Connect Connect. A connection to the database is established.
  3. Execute the task Execute all code files Execute code files to deploy your model to the database.

Your application is now available. There is no data yet. In Set up the user interface of your application, you will make your application look neat and professional.

Set up the user interface of your application​

To set up the user interface of your application:

Set up screen types​

See also screen types.

We recommend that you are consistent in which screen types you choose, and that you take into account what your user needs at an early stage. By default, your application will use predefined screen types.

You can also import existing screen types, if available These might not display your content exactly the way you want. In that case, you can create custom screen types to match your needs:

menu User interface > Screen types

  1. Find the screen type that looks closest to what you need and copy it, or start with a clean template.
  2. Assign your screen type to the corresponding subject(s).
  3. Go to the tab Design.
  4. Edit your screen type by adding or removing components.

Customize subjects​

See also subjects.

menu User interface > Subjects

  1. Customize your subjects. Subjects are collections of data from your model that are displayed and edited in your application. They can be based on tables or views, and they are highly customizable.
  2. Customize each component that you use, so that your screens match the requirements of the users.
  3. Add look-ups for references to columns, tables, etc.

Customize the user interface​

  1. Add conditions and/or prefilters to the subjects to further fine-tune the data that is shown in your application.
  2. In the menu User interface > Themes , create or import a theme for your application.
  3. In the menu User interface > Icons , add or import a collection of icons that you can use throughout your model.
  4. In the menu User interface > Translations, add translations for the items that you have created so far. You can execute the task Translate to automatically convert the names of your objects to a more readable format. You can also manually translate your objects.

Your application should now start to look and feel the way you want. You can continue fine-tuning the UI, or move on to Add functionality to your application first.

Add functionality to your application​

To add functionality to your application:

Add custom business logic to your application​

See also business logic.

menu Business Logic > Functionality

  1. On the tab Control procedures, create one or more control procedures. Available standard code groups are defaults, layouts, triggers, and more. See the overview of the available logic concepts for more information about the code group options.
  2. On the tab Templates, add a template.
    We recommend not to add SQL code to your template yet. If no code is present, the Software Factory puts a placeholder for your custom code when generating the definition. It will be easier to add your SQL code after the first definition generation, because then you can see the names of the available parameters.
  3. On the Assigning tab, execute the task Generate code group Generate code group.
  4. Assign a template (that is to be created automatically) to one or more of the available program objects.
  5. On the tab Deploy, generate the definition generate.
  6. Show show the generated code.
    Here, you can see the header of your code, and it will be clear which parameters are available and what they are called.
  7. Write your SQL code where it says "Insert your code here", and generate the definition again to apply your functionality.
  8. Go to the tab Validation.
  9. Validate your business logic.
  10. Go to the tab Deploy.
  11. Execute the code for all or a selection of program objects from a control procedure to the database.
  12. Go to the tab Unit tests.
  13. Add a unit test to test the functionality that you have just developed.

Add one or more process flows to your application​

See also process flows.

menu Processes > Process flows

  1. Create one or more process actions.
  2. Go to the tab Design. Your process actions are shown here.
  3. Arrange your process actions in the correct order. The first action should be Start and the last action should be Stop.
  4. Connect each process action to the next with a process step.
note

If you want to use your own custom tasks in your application, you can create those in menu Processes > Tasks. You can also automate creating reports in menu Processes > Reports.

  1. Go to the tab Validation.
  2. Validate your process flow(s).

Ensure the quality of the application's code​

menu Quality > Code review

  1. Assign control procedures and templates that have not been approved yet to a reviewer.

After setting up your application, you can continue to add more business logic as needed, and refine it by finetuning the user interface.

What's next?​

Once you have a minimal working application, explore the following subjects to build a mature application:

  • Quality assurance. Check the validations and add tests to improve and guard the quality of your application. Use the Quality dashboard for a good overview of the quality of your branch.
  • Access control. You can add custom roles to your application to control user permissions and access. Take advantage of default user groups to quickly set up user groups and role assignments.
  • Analysis. Once your application is deployed, you can use the Analysis menu to inspect metrics and management information about the models in the Software Factory development environment. You can also calculate the functional size measurement of your software by using function point analysis.

Was this article helpful?