Published on September 29, 2021.
A few days ago I wrote about a NetSuite project that I've started working on - a macOS and Windows native desktop app that syncs SuiteScript files with NetSuite. The purpose of the app is to make it easier for SuiteScript developers to use alternative IDEs and text editors by automatically uploading their updated scripts to the NetSuite File Cabinet.
I was surprised by the level of interest in the project, and by the large number of developers that have reached out to me about it with comments and questions. So I thought I'd post this quick follow-up to answer their questions and provide additional information.
The most recent version of the app is in the form of a console app. Here's a short animation that shows the app syncing changes to a Suitelet. (Click on the video to see a larger version in a new tab.)
As you can see, I run the sync app from the command line, and use command line arguments to specify the NetSuite account that I'm working with, the ID of the File Cabinet folder that the file should sync to, and the local path of the file that I want to sync. For example:
./SuiteScriptSync --account="TSTDRV2453909" --folder=-15 --file="/Users/timothydietrich/Documents/Projects/NetSuite - SuiteScript Sync App/sample.suitelet.js"
The account value is used to load a "sync profile," which includes detailed information about the NetSuite account that is being synced to. For example, it includes the integration credentials to use (consumer key / secret, token ID / secret, etc).
The app then monitors the file, and when a change is detected, the app uploads the updated file to the NetSuite File Cabinet. To upload the file, the app calls a custom RESTlet, which uses the N/file module to save the file. At this point, the only limitation that I've encountered is that the file cannot be larger than 10 MB.
As I mentioned in the original post, I'm developing the app using Xojo. Xojo is a cross-platform application development tool, that makes it possible to develop native applications for macOS, Windows and Linux. You can use it to develop desktop apps, mobile apps (currently only iOS, but Anrdoid support is on the way), console apps, and Web apps. You can also use it to develop Raspberry Pi apps.
Development of the app is coming along nicely, and more quickly than I had expected. I've started using it on a few client projects.
However, I still have quite a bit to do, including converting the app from a console app to a desktop app, adding an interface for managing the sync profiles, and more. I also need to test the app on a Windows-based PC.
I'll continue to post updates here on my blog, and over on LinkedIn.
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.