Extensions
Turn any map into an interactive application — build custom extensions with AI or add pre-built tools in a few clicks.
Extensions let you add interactivity to your Felt map, whether that means enabling viewers to search, measure, or filter your data with pre-built tools like Find, Measure, and Spatial filter, or creating a complete application with Custom extensions. With extensions, you can transform your map into a purpose-built interactive experience tailored to specific workflows all without writing code.
Extensions are available on the Enterprise plan. Contact sales to upgrade.
Examples
Neighborhood comparison tool

Data animations

Interactive data

Create a custom extension with Felt AI
Click Developer Platform (
) in the toolbar and select the option for Custom extension
Extensions editor opens in a split view:
the left side includes the AI prompt area where you describe what you want your custom extension to do, and a code editor that displays the generated code with the option to refine. You can view logs in the Console tab of the prompt area as you test your extension.
the right side shows a live preview of your map with your custom extensions

Describe the specific interaction or workflow you want by typing in the prompt area. Examples:
"Build an application that compares neighborhoods and summarizes land use patterns"
"When someone clicks a point, show a popup with the nearest 3 schools"
"Add a sidebar that plays an animation of the data over time."
After a prompt is submitted, Felt AI will generate code based on your prompt and you will see the code editor update.
You can modify the code directly in the code editor and hit Run to see the updates in the preview map.
Click Save once you have a working extension.
The custom extension will appear in your map’s legend.
Polished UI
Custom extensions let you go beyond pre-built ones to create complete, purpose-built applications with polished UI components like:
Buttons: Quick actions viewers can click
Panels: Sidebars that display summaries, stats, or workflows
Forms: Inputs for viewers to enter text or select options
Embedded content: Charts or dashboards from other sites displayed in your panel
UI elements automatically match Felt’s design so everything looks polished and integrated. They can be rendered as buttons in the legend or panels on the right side of the map, and can draw ephemeral data (ex: isochrones) on the map based on a user interaction like a click.
Managing extensions
Clicking on the extension in the legend allows editors to reopen the editor, rename the extension, or access additional options like copy/duplicate/delete.

Debugging
Test your extension by exiting edit mode on the map (click the pink Done button top-right). Extensions can only run when viewing the map in view mode
Only members with editor permissions can see/modify the extension code to debug.
To find a layer ID to feed into an extension, click on ... next to the layer in the legend, then select Actions > Copy layer ID for API. Note: the same data on two different maps will have a unique layer ID per map.
Errors will appear in the
AI assistanttab with a brief summary of the issue. Use Felt AI to fix the errors by clicking theFix errorsoption:The Console tab in the prompt area shows more detailed debugging and verbose logging
Clipboard helpers in the editor let you easily copy your map’s viewport or layer IDs
Click on ... next to the extension in the legend to copy, cut, duplicate, and delete extensions.
Tips
Saved extensions are automatically shared when you share your map - viewers will see the interactive functionality without needing any special access.
Extensions run when your map is in View mode only. While in Edit mode for your map, extensions are disabled so you can edit your map safely. You can still open the extensions editor at any time to edit your extension.
The preview shows exactly how your custom extension will work before you save or share it
The overflow menu in the editor offers helpful options like word wrap, auto-run, and delete
Viewers won’t see your custom extension until you save it
If you want to go further, see the Felt SDK API reference for details on everything the SDK can do
Pre-built extensions
Felt provides three pre-built extensions you can add with just a few clicks.
Find
The Find extension enables map viewers to search locations and layers by entering keywords in the search box.

To add Find:
Click Developer Platform in the toolbar
Give your find tool a title
Choose whether results include search from all layers, specific layers, or locations (places and addresses).

Measure
The Measure extension provides map viewers with tools to measure distances and areas directly on the map.

To add Measure:
Click Developer Platform in the toolbar
Optionally rename the tool.
Choose which measurement types to offer map viewers: line, polygon, circle, driving, cycling, walking, or flight great arc.

Spatial filter
The spatial filter extension enables viewers to filter layers and export the filtered results by drawing a shape on the map. Selecting a spatial filter shows the number of features filtered, along with details about the size and shape of the filtered region.

To add Spatial filter:
Click Developer Platform in the toolbar
Optionally rename the tool.
Choose which shapes viewers can draw (polygon, circle, or both).
Select which map layers the filter applies to.

To let viewers export filtered results, turn on Export data in your map’s settings. Once the setting is on, a download icon will be available to all logged-in viewers from the spatial filter panel.
Logged-in viewers can download results as GeoPackage, GeoJSON, or CSV
Logged-out viewers can filter interactively but cannot download data
Spatial filters work great alongside other components set to “Update based on other filters”. In the image below, the statistic and bar chart components are set to update based on other filters, such that they show risk stats for the spatially-filtered region. Lines and polygons that partially intersect the spatial filter are fully counted in calculated statistics.

Frequently asked questions
What are extensions in Felt?
Extensions add custom interactivity to your Felt maps, transforming them into purpose-built interactive applications. You can build them by describing what you want in natural language — Felt AI generates the code — or by writing the JS SDK code yourself.
Do I need coding experience to build extensions?
No. You describe what you want in natural language, and Felt AI generates the necessary code using the JS SDK. You can edit the generated code directly if you want to, but you don't have to.
Who can access extensions?
This feature is only available to admins and editors who are using Felt on the Enterprise plan. To upgrade, you need to contact sales.
What happens when I share a map with a custom extension?
When you share your map, your custom application is live and ready for viewers to use immediately—no extra setup or deployment needed.
Can I modify the generated code?
Yes, you can modify the code directly in the code editor and click Run to see the updates in the preview map.
What are some example use cases for extensions?
Neighborhood comparison tool: Compare neighborhoods and summarize land use patterns
Data animations: Animate the flow of the Mississippi River Basin from headwaters to the Gulf of Mexico
Interactive data tools: Draw lines to destination counties on click with travel mode options and filters
What technology powers extensions?
Extensions are built on Felt's JS SDK. Felt AI generates the SDK code from your natural language descriptions, and you can edit that code directly in the editor.
Where does my custom extension appear after saving?
The custom extension will appear in your map's legend when editing a map.
Where does the extension code run?
Everything happens right in Felt and runs on Felt's scalable cloud infrastructure. You can preview, adjust, and save your extension with no extra setup or deployment required.
I need to find a layer ID to feed into my prompt for an extension. Where can I find this layer ID?
Click on ... for the layer in the legend, then select Actions > Copy layer ID for API. This will copy the unique identifier for the layer on the map you're building the extension.

Note: the same data on two different maps will have a unique layer ID per map.
Last updated
Was this helpful?