SuiteFrame: Questions & Answers

Published on June 13, 2022.

I received several emails overnight asking about and commenting on SuiteFrame (an open source framework for developing NetSuite-native applications that I released yesterday). I thought I'd share some of the questions here.

Can you filter the records shown in list views?
Yes, and you can either do it on the front end or back end.

To handle the filtering on the back end, you can pass the criteria back up to the Suitelet, have it run a query, and return the data to the client. Then have the client take the response, parse it, and use it to generate a new table.

To handle filtering on the front end, you can use a Javascript function to evaluate the data that was initially sent down from the back end when the view loaded, and apply the filters directly. Again, you'd have to tear down and rebuild the HTML table, but that's pretty easy to do.

Do you have to use SuiteQL for these apps?
No, but I recommend it, and for list views in particular, primarily because of the speed benefits. When using it for detail views, SuiteQL can be helpful because you can easily get a record and any related data in a single request.

You can also use individual queries for records that you'd normally think of as sublists. If you look at the demo app, you can see one technique that I use to do that - for the recent logins.

That all being said, there are times when I make use of saved searches, and when I load a record (via the N/record module) to get to data that I can't otherwise get to. An example of where N/record is used (and is necessary) is in the demo app, where I'm loading an employee record to get to its image file. That's a column that we can't get to using SuiteQL.

Do you have to use Bootstrap?
No, you don't have to use anything in particular. Instead, you can use whatever you want. That's one of the nice things about the framework. In fact, in some cases, I'm not loading any additional library, and instead just leaning on NetSuite's standard UI conventions (styles, etc).

What version of Bootstrap are you using?
I usually use older versions of Bootstrap, because I've been using them for years and I'm more familiar with them. However, lately I've started to use Bootstrap 5 - and I'm using 5.2 in the demo app.

And by the way, it is possible to use a Bootstrap theme. Most of them are really nicely done.

For templating, have you used anything other than Handlebars?
Yes, I've also looked at mustache.js, and experimented with it a bit. But I find Handlebars to be easier to use and more powerful. I've also used custom templating as well, especially in cases where I'm generating the UI entirely server-side.

What is that "view JSON" function that you show in the video?
It's the JSON equivalent to the "view as XML" trick that's been around for years - something I wrote about here. I've found the JSON function to be helpful while developing apps with the framework, because I can easily see the data I'm working with, and especially how the JSON is structured.

In your post you made a joke about the app being responsive. Is it responsive?
Sort of. If you run the app without the NetSuite "chrome" then the app does generally become responsive. However, I am using some HTML tables that don't resize well. If responsiveness is a requirement for an app that you're working on, then you can certainly achieve that goal. It just takes a little more time. That's one of the benefits of using something like Bootstrap.

Also, I didn't mention this in my original post, but you can very easily run the demo app outside of NetSuite's standard UI by adjusting the "hideNavBar" setting in the "employee-directory.core.suitelet.js" file. Just set it to true.

Can you use a SuiteFrame app to upload files?
Yes, but there are limitations due to the N/file module. In particular, you have to be careful about the 10 MB size limit. To work around this, you can upload images to something like S3, and to make that easy, you can use something like Filestack.

What kinds of apps have you been developing with SuiteFrame?
As I mentioned in the post, I've been using SuiteFrame for several months now. In that time, I've developed apps to help with production planning (work orders), bank payments (ACH and virtual cards), purchase orders, and more. Most of those apps are internal-facing single page applications. But I have been using the framework on external-facing apps as well.

More recently, I've been using the framework to build a custom NetSuite-native business intelligence application. I'm using SuiteQL and saved searches to serve up entire dashboards and individual KPIs. For the charts, I'm using Google's Chart API.

Thanks for all of the comments and questions about SuiteFrame.
It's exciting to see so much early interest in it. If you have any other comments, questions, or suggestions, please feel free to reach out.

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.