Behind the build: a Q&A with developer Gavin McFarland

We recently introduced plugins and widgets to FigJam to help teams better collaborate and connect. After building widgets internally for a few weeks, we opened up the API to a close community of external builders. We are always impressed with the Figma Community and wanted to share what they’ve come up with, so we reached out to three developers to learn more about who they are, what they built, and what they’re working on next. Read our third Q&A in the series with Gavin McFarland, and check out his widget on the Figma Community.

Tell us about yourself!

I'm a freelance design consultant. I help companies with digital transformation using user-centered design. I started out designing and building websites for friends and family. Being a freelancer, I feel I've learned to push my comfort zone just enough, to open my mind to trying new things. Late last year I saw someone on Twitter looking for an easier way to create tables in Figma. Something in that moment clicked in me, and I decided to give creating a plugin a go. I started with the Rectangle Creator example and modified it slightly to create a table. Before I knew it I had published my first plugin (surprise surprise, it's called Table Creator!) and now it's being used by tens of thousands of people. I also have a cat named Floyd who thinks he's a dog and loves to play fetch.

What did you build and who is it for?

After that first plugin, I then built a table widget. You can add columns, rows, import data and even sort by columns. It's for anyone who doesn't want to have to leave FigJam in order to show tabular data in their workflow.

How did you come up with the idea?

I seem to have a thing for tables. Having already built a plugin which lets you create tables in Figma, I wondered what the possibilities might be for creating tables with widgets.

How did you start actually building it?

I started by using the notepad example and modifying it. I made a simple change here and there to see how the widget API worked. Part of the process was becoming accustomed with JSX code which I haven’t really used before. Once I’d figured out the basics I started playing around showing rows and columns and different designs.

What surprised you in the process?

I never thought what I'd create would have so many interesting opportunities. What began as an exercise in using the widget API, became an opportunity to think about how teams could work better together. How might it work when two people are editing the same table at the same time? What affordances can you show to let someone know your colleague is also working on the table? How do you manage these multiplayer interactions with large amounts of data so it’s not sluggish? Being sort of both a right and left-brain person, these challenges really appealed to me.

What do you hope people get out of it?

I hope it will empower people to be more productive. And I hope by being more productive it will help people to collaborate more closely and focus on the things that matter. For me, that means working together to solve real problems that people face everyday.

Where do you often draw inspiration from?

I often try to listen to what people find difficult in their design process. The Friends of Figma Slack group is great place to get ideas. What would make their job better if they had the right tools? I also like to get involved in the dev community. There are so many awesome plugin creators. I've made a few friends by getting to know people and figuring out ways we can help each other make our plugins better.

What else are you currently working on?

I recently created a plugin called Node Decoder that makes it easier for creators to turn their designs into plugin and widget API compatible code. Say, for example, you want to build a widget, you design how you want it to look in Figma and it outputs JSX code which you can copy and paste. It’s actually what I used to design and build my table widget with.

I'm also working on an update to my Table Creator plugin that makes it easier for teams to share several table designs across multiple files. It allows anyone to create a table to use in their design system.

What do you want to build next?

What don't I want to build next? Honestly I have so many things on my list. Each time I think of an idea I make a note of it. I’d love to explore more widget ideas, especially when it comes to multiplayer use. I want to build a plugin for sharing plugin code examples and I have an idea for a game that lets you design the game itself in Figma.

What do you hope someone else builds?

I really hope someone builds a FigJam plugin to rearrange process diagrams or org charts. I have a soft spot for creating diagrams and it would be great if there was a tool that took care of laying these out.

What are you currently excited about?

I’m really excited about teaching others how to create plugins and widgets. Especially anyone who comes from a design background or has little to no coding experience. I have some ideas around this and can’t wait to share them.

Browse more widgets and plugins in the Figma Community, and check out all of the recent updates to the FigJam platform here.