Find Some Guidance on Integrating Custom Widgets with Nova App

Hello Everyone,

I am currently working on a project where I need to integrate some custom widgets into Nova App. These widgets are crucial for enhancing user experience and adding specific functionalities to the app.

I am looking for guidance on how to flawlessly integrate these custom widgets into Nova App. Specifically, I am interested in:

  • Good techniques for widget integration within Nova App’s architecture.
  • Any documentation or resources available for developers working on custom widget integration.
  • Tips or insights from developers who have successfully integrated custom widgets into Nova App

Any guidance and insights would be greatly appreciated!

Thank You,
Marcos

Could you be more specific what you mean by “widgets” and what use cases or features you foresee wanting to add? Are you looking to add custom UI elements, and if so, to what part of the app?

Hi @marcosandrew, the only supported way to add a custom widget directly into Nova is by creating a sidebar using the Nova Sidebar API. Sidebars can be dragged and moved around the interface into the left or right side panels of the app.

A sidebar has limited UI customizability. It only supports one or more collapsible tree views (similar to the file browser panel), a couple of toolbar buttons, and a right-click context menu. With some creativity you can use the treeview to create a sort of makeshift custom UI but its feature set is limited. (nudge nudge @logan)

Another possibility, and I’ve never seen this done before, is to have a companion app that runs alongside Nova, and communicates with Nova in the background. Your custom app would be in a separate window from Nova and could be displayed as a floating panel. There could be multiple ways of having it communicate with Nova.

One way might be to use Nova’s Process API to run a terminal command that communicates with a script or NodeJS server to send messages back and forth between your companion app. Another way might be using one of the Web APIs or the Streams API.

Another option might be to use the File and FileSystemWatcher APIs to read and write to a temporary file to send messages back and forth, though probably not recommended.

1 Like

Hey eablokker,

I am grateful for the thorough explanation on integrating custom widgets in Nova using the Sidebar API. It’s insightful to learn about the limitations and innovative solutions like companion apps for a more enhanced UI experience.
I gone through this documentation https://docs.nova.app/extensions/sidebars/#defining-a-sidebar-rpa It is really helpul for me.

Thank you for sharing such valuable insights.

(Marcos)