A Table-First Take on FigJam Widgets

When Figma opened its widget API to a select group of external developers, one of the early results was a growing collection of tools for handling data directly inside FigJam. Gavin McFarland, a freelance design consultant, contributed a table widget that lets teams manage tabular data without leaving their board. In a recent Q&A, he discussed how he built it, what he learned along the way, and what he hopes others will create next.

McFarland began his journey in the Figma ecosystem as a plugin author. After seeing a request on Twitter for a simpler way to create tables, he modified the Rectangle Creator example to produce a basic table. That first effort became Table Creator, a plugin now used by tens of thousands of people. Encouraged by that success, he turned to widgets to see if the same idea could work in FigJam.

From Notepad to Data Grid

His table widget supports adding columns and rows, importing data, and sorting by column. The target audience is anyone who needs to display tabular information as part of their workflow but doesn't want to switch applications to do it.

The development process started pragmatically. McFarland used the widget API's notepad example as a base and made small changes to understand how the API responded. A bigger hurdle was getting comfortable with JSX, which he hadn't used before. Once he had a handle on the fundamentals, he began experimenting with row-and-column layouts and alternative visual designs.

The deeper challenges emerged later. McFarland said he was surprised by how many interesting design questions the project raised, particularly around collaboration. He found himself thinking through scenarios where two people edit the same table concurrently: how to signal that another teammate is working in the same grid, and how to keep multiplayer interactions responsive when handling large data sets. For someone with interests in both design and engineering, those constraints were part of the appeal.

Tools for Building and Sharing

McFarland's current work extends beyond the widget itself. He recently released Node Decoder, a plugin that converts designs into plugin- and widget-compatible code. A creator can lay out a widget's appearance in Figma and get paste-ready JSX output. He used that tool to design and build his table widget.

He is also updating Table Creator to improve how teams share table designs across files, enabling anyone to build and reuse tables in a design system. Looking ahead, he cited plans for exploring additional widget ideas, particularly around multiplayer use, and a plugin for sharing plugin code examples. One more aspirational project: a game that can be designed within Figma itself.

Requests for the Community

McFarland offered one specific suggestion for other developers: a FigJam plugin that automatically rearranges process diagrams or org charts. He admits a soft spot for diagram creation and wants a tool that handles the layout work for him. Inspiration, he noted, comes mostly from listening to the difficulties designers mention in communities like the Friends of Figma Slack group, as well as from networking with other plugin creators.

He also hopes to see more people from design backgrounds try their hand at building plugins and widgets, especially those with minimal coding experience. Teaching others how to get started is something he says he's eager to do more of.