Tips and Tricks for Building Tulip Apps

Hey Tulip community. I am kicking off a YouTube account where I will be sharing tutorials and strategies for building Tulip apps!

Check out the first Tulip video here, where I highlight 10 quick tips. You may already know some of these but hopefully, even an experienced Tulip user can learn a thing or two. It is a quick 6-minute video, but I expect to be making more content of all kinds. Let me know what you think and if there are any ideas for more Tulip content!


Love tip #10! Keep it up @danielpomeranz . I’d love to see some streams of builds from start to finish. We don’t have enough of those out in the wild.

Hi @danielpomeranz,

this is a great start. I like it :balloon:

I have two additions for the second one (jumping to a table).

  • Clicking the middle mouse Key always opens the link in a new tab (no context menu needed). If you hold shift while using the middle mouse key, it will open in front instead of in back

  • If you use Edge as a Browser, you can right click and choose to open in split screen. Then you have your table next to the App and you can resize the areas. On the top right you find a menu (…) to switch to a new tab or close the split screen…

The one with the distribute widgets is one I don’t like, because it behaves weird. When the widgets are not equal sized, the distribution is not for equal gaps (as MS Office behaves) but for equal distance from the top left corners. That makes them partially overlapping and partially having huge gaps…

Edit: This is a Trick, I often use and you might want to mention it:

If there is some calculation, that could need some bug fixing later or can get a bit special or so, I prefer adding a calculation step.
So the Button trigger is only a transformation to this calculation step, there I have “on step enter triggers” and a transformation to a target step.
This has some benefits:

  • you can separate the precalculation and main calculations easily (preset in the button calculation on the step)
  • you have a Notes area on the step for these calculations only
  • you can copy the triggers from and to other widget triggers (workaround because they are no longer button level triggers)
  • you can show a message on the step, that will only be visible if something went wrong (otherwise you will never see the step)

What do you think?

@thorsten.langner YES! These are all amazing pieces of advice. I hope the Tulip community continues to spread and share so that we can all spend more time focusing on architecture and less time on clicking.

I definitely will plan to make a more advanced video for all the power users out there.

Love it @danielpomeranz, looking forward to the next one.

I’ve got a bunch:

  • You can search variables/functions/table records by typing them out in the drop-downs. E.g., Type “D” for Data Manipulation (This is a trick that usually works in website drop-downs). This lets you move VERY fast when you’re used to the interface.

  • (For GxP people) You can store files/documentation in application variables, which become uneditable when the app is released, but can still be downloaded through the variables manager.

  • You can create a simple approvals workflow for data by giving records a “Status” tag and creating a “Request” record. The “Review/approve” application can update the Status when all the approver fields have been populated. I’m on LTS 10 right now but if you’re on the biweekly branch and can use automations, then this will be way easier.


+1 I use these ‘keyboard shortcuts’ a lot! For example, in making a trigger:

  • Highlight first dropdown
  • D → Data Manipulation
  • Tab to next
  • S → Store
  • Tab
  • A → App Info
  • Tab
  • C → Current Date and Time

and so on.

I would contribute two more -

  1. Device Outputs are accessible in Expressions! In your “When Barcode Scanner Outputs” trigger, it’s common to think you must first save that output to a variable and then compare on that variable - no need!
    Simplify your triggers by referencing @Device directly in your assignments or comparisons!

  2. Need to delete triggers quickly but don’t want to click into the Trigger Editor, click Delete, and click Confirm? Just click “Cut” instead, and it’s gone! (I have a product suggestion in to add a ‘delete’ icon here, so perhaps this is no longer needed soon :wink: )

Showing how to copy slides from one app to another is confusing enough that I would count it as a trick