Good morning, I experimented with the (SPA) Single Page Applications that will be generally available in 25.1. Here were my takeaways if anyone is interested in trying it out. I'm not a JSX/React expert by any means, so would love to hear what other think if you've built something with SPAs.
https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_48092943725.html
Pros:
1. Includes a very comprehensive list of UI components. Seems to have everything you would need to build complex applications.
2. It was simple to get started and deploy the app for testing.
3. Lots of good code samples and studio where you can try components out.
4. Error logging was usually sufficient to determine where I messed up.
Cons:
1. No local development. I could not find a way to test locally without deploying code to NetSuite. I'm used to building SPAs in other platforms like Zendesk/Stripe where you can do local development and see changes immediately. That is very helpful for front-end development where you're trying to tweak small details like styling. Good news is the deployment process is pretty quick - less than 5s.
2. While the base UI components have a lot of capabilities, there are no higher level components that allow you to integrate with native NetSuite functionality such as Records/Transactions. For example there is a DataGrid that can represent lines on a transaction. But you're adding all of the necessary functionality from scratch such as buttons for Adding/Removing lines, totaling amount columns, etc. Another example could be a dropdown to select a customer. With Suitelets, you have the option of specifying a source and NetSuite automatically generates the searching capability. You're not going to get any of that out of the box with SPAs.
--
If you're used to building custom forms in Suitelets you might be disappointed by how much additional work is required to make things work. But, you can build much more powerful/friendly/modern user interfaces than you can with Suitelets. I'm not sure if NetSuite's intention was to replace Suitelets with SPAs, but that is what I was hoping to do. Unless NetSuite decides to add tighter integrations between SPA components and common NetSuite SuiteScript modules, I suspect adoption by enterprise customers will be lower and they will continue to be used mainly by 3rd party app builders.