NetSuite: SuiteBrowser Remote App Support - Xojo-Based Example

Published on January 14, 2024.

I wrote yesterday about SuiteBrowser's ability to support remote apps, which are apps that run inside of NetSuite, but whose source code is hosted externally. Technically, the apps are running in SuiteBrowser, which provides a bridge to a NetSuite session. These apps give developers the ability to create solutions that can tightly integrate with NetSuite, so much so that to a user the apps appear as if they're built right into the platform itself.

In yesterday's post, I wrote that these remote apps "can be developed using whatever language or technologies you'd prefer." And I thought I'd follow-up on that comment.

The demo app that I showed in that post is hosted on a server running nginx and PHP. The app uses PHP on the backend, and the JavaScript / SuiteScript code that I shared to integrate with NetSuite via SuiteBrowser's "App Runner" engine.

I wanted to see what it would be like to develop a similar app using another Web technology. For the experiment, I chose Xojo, which also happens to be what I'm using to develop SuiteBrowser itself.

Developing the app was surprisingly easy. Granted, this is a simple app, but take a look at what I was able to put together in a little more than an hour.

In the video, you can see that I'm launching the remote app by selecting it from SuiteBrowser's "Applications" menu. This opens a SuiteBrowser "App Runner" engine, which in turn launches the remote app. In this case, the app is a Xojo-based Web app.

Similar to how the PHP-based app works, the Xojo-based Web app makes a few calls back into App Runner engine to execute some simple SuiteScript. One of those calls uses the "N/runtime" SuiteScript module to get information about the user that is logged into NetSuite, and another uses the "N/query" module and a simple SuiteQL query to load opportunity records.

The app then uses the query results to populate a Xojo WebListBox control (the table that is displayed). When the user clicks on a row, additional information about the selected opportunity are displayed using a Xojo WebDialog control.

Here are a few screenshots that show what the Web app looks like in the Xojo IDE.

Click the image to view a larger version.

Click the image to view a larger version.

Click the image to view a larger version.

Again, the app that I'm demonstrating is very basic, and it only begins to show what is possible with SuiteBrowser's remote app support. A remote app can be as sophisticated as you need it to be, and you can use whatever technology that you'd prefer to use to develop it. The only real requirement is that it integrate with SuiteBrowser / NetSuite using SuiteScript. On the backend of the app, you could do all sorts of things - for example, integrate with other applications or platforms - or even make backend calls into NetSuite via SuiteTalk, SuiteAPI, or your own custom RESTlets. The possibilities are endless.

If you're interested in SuiteBrowser, please look for updates here on my blog, or follow me on LinkedIn.

About Me

Hello, I'm Tim Dietrich. I develop custom software for businesses that are running on NetSuite, including mobile apps, Web portals, Web APIs, and more.

I'm the developer of several popular NetSuite open source solutions, including the SuiteQL Query Tool, SuiteAPI, and more.

I founded SuiteStep, a NetSuite development studio, to provide custom software and AI solutions - and continue pushing the boundaries of what's possible on the NetSuite platform.

Copyright © 2025 Tim Dietrich.