This blog post is Human-Centered Content: Written by humans for humans.
As data teams seek more flexibility and customization in their business intelligence workflows, plugins in Sigma have emerged as a powerful way to extend the platform’s capabilities. Whether you’re embedding interactive visualizations or building tailored UI components, Sigma plugins offer promising opportunities to adapt dashboards to specific user and business needs. However, like any emerging feature, they come with their own set of challenges and evolving standards. In this post, I will walk through my experience testing how to properly install Sigma plugins, evaluate how the example plugins perform and share some practical suggestions for anyone interested in exploring this feature further.
My Initial Approach
As soon as I read that Sigma had left the door open for any programmers to build their own set of components, I felt like the skies parted. I believe that companies willing to unlock the full power of these features will set themselves apart in a competitive landscape. By this, I mean building as many components as possible to grant the company its own differentiator in terms of visualization capabilities. Then, if we pair this with the other unique features Sigma is bringing to the market, specifically data apps and data modeling, it becomes a powerful differentiator: Sustainable, hard to replicate and capable of delivering greater value to customers. For that reason, I decided to give it a try.
According to Sigma’s documentation site, there are three scenarios to get started with plugins:
- Using our organization’s existing custom plugins, if it had any.
- Getting started with their sample plugins to explore what plugins can do for our organization.
- Developing custom plugins from scratch.
I chose the second option: to start by testing the example plugins from the perspective of an administrator who wants to understand what plugins can do for their organization.
Let’s Set up the Playground
Before starting, it is necessary to perform some small tweaks to your Sigma environment to make sure the plugins will be functional. By default, there are no plugins installed. The first step is to register each plugin individually in your company’s Sigma instance. Needless to say, that you must have administrative rights or a custom account with plugin developer feature permissions enabled to do so.
The process is very simple: Go to the administrative section, find the “Custom Plugin” panel and click “Add” to install the plugins you want to use.
Above: Form to register new plugins. Source here.
There are some topics to bear in mind here. First, the plugins must be hosted in a server to be used. There is no installation or upload of libraries and components to your Sigma server to enable the usage of custom plugins. Given Sigma is a web-based application, plugins are embedded in our workbooks inside of an iframe element. That implies that sometimes your plugins may behave differently from your workbook, meaning that they might take time to load, depending on the response time of your production server.
For those not familiar with the HTML tags, the iframe is one tag that allows you to display a web page or html content inside another one.
Above: Sample of an HTML code that uses two iframes to display the NFL and NHL websites simultaneously on a same webpage.
Hence, when creating a new plugin, you must provide the production url which is the address where the plugin is hosted. In addition, you also need the development url which must always point to https://localhost:3000/.
If you follow the steps to the letter, as it is in the official documentation available for registering a plugin with your sigma organization, your plugin won’t work. There is a catch here, because there is another plugin that must be created to enable the usage of plugins. Yep, it’s just as you read it. Believe me, I learned the hard way.
We are talking about another plugin named the Sigma Plugin Dev Playground. All other plugin development documentation assumes that this dev playground exists. For that reason, you need to set up the playground before starting with any plugin in Sigma. In this case, the configuration is simple.
Above: Configuration for the Sigma Plugin Dev Playground. Source here.
Now, we are all set. To insert a plugin in your workbook, click the plugin element from the UI section in the Add Element bar and place it on your canvas. The settings section will display all the names of the plugins installed so you can pick which one that object will represent.
Above: The plugin element acts like a placeholder because in reality, it is an iframe. For that reason, it makes sense that once placed on the canvas we must pick the plugin we want to display inside of it.
Testing Sigma’s Example Plugins
I must confess that I have mixed feelings here. I tested the plugins that are found in the documentation as examples. The text clearly recommends starting with their examples if we want to explore what plugins can do for our organization.
The example plugin list contains elements that are hosted by Sigma, so they have their production url enabled and ready to be used. I was surprised to find some of the example plugins were functional, others have very limited capabilities and others are out of order.
The most complete of the examples are the D3 Sunburst and the Recharts Bar Chart. They display the data and behave as expected, but it is enough to say that they do the job. Personally, the one I liked the most is the sunburst chart. It allows us to add several dimensions, and its performance is as smooth as expected from a good Javascript component.
The issue here is that they don’t have any formatting, transformation or action settings available. Check out the videos below. You can see that the configuration options are missing. Only, if our data source already contains groupings, the editor panel prompts us to select an aggregate level.
Above: The sunburst plugin is functional, it uses the Javascript library D3.
Above: The bar chart uses Recharts library.
Above: The D3 graph chart is cool and it is interactive. You can see more elaborate versions on D3’s site. I particularly like the Disjoint force-directed graph / D3 | Observable.
Main Takeaways if You Are Interested in Sigma’s Plugins
The fact that Sigma has left the door open for developers to build their own elements is another game changer compared to other big brands in the BI realm. This exemplifies the fact that Sigma’s team is making wise decisions to position themselves in a distinctly competitive position. That’s important because, unlike traditional BI tools that focus heavily on visualization variety, Sigma invests its strengths in other areas like data modeling and interactivity where it truly stands out.
To date, the five sample plugins published for production are not fully functional out-of-the-box. However, they indeed serve as a good starting point since their source code is public at GitHub (GitHub – sigmacomputing/sigma-sample-plugins). Hence, the best approach right now is to clone them and code your own version for getting any extra capabilities you are looking for.
That said, keep in mind that at Sigma, they utilize React libraries for front-end development and recommend that we do the same when creating custom plugins for our organizations. If you opt for a different approach, please ensure you use the standard JavaScript API or the React Hooks API. Besides, to date, plugins only have access to the first 25,000 rows in a data source. Therefore, we must group and aggregate data to reduce the total number of rows.
Above: To date when this blog was written the plugin gallery available in Github contained 15 samples but most of them were outdated. We contacted Sigma to get support on this issue, and they kindly acknowledged the situation and issued a ticket to update some of the ones I pointed out to be faulty. They are looking into cleaning up these examples and updating their documentation accordingly.
As a final thought, Sigma’s plugin capability may still be in its early stages, but the potential is too big to ignore. Testing them reminded me that real innovation often begins with experimentation: Some things work, others don’t, but every step opens new possibilities. If you’re a developer, a data thinker or just someone curious to build beyond the default, now is the time to dive in. I’m genuinely inspired to create something of my own, and I hope you feel the same spark.