Introducing: Components

Stop repeating yourself repeating yourself reaepting yuroslef rpaetnig ouylefs


Today we’re launching an exciting new way to build and collaborate in Hex: Components.

Components are groups of cells your team can write once and re-use across projects. They make data work more consistent, efficient, and less error-prone. They also make it easier for users of all technicality levels to take advantage of logic written by experts. It's a huge upgrade to how teams work together and collaborate in Hex!

Check out a quick demo here, or read more below:

Don’t repeat yourself!

If you’re anything like us, you’ve probably thought “haven’t I seen this before?”… or worse, “haven’t I done this before??” as you have worked on a data project. Teams everywhere rewrite the same queries and code over and over, leading to rework, variation, and error.

There are some existing - but limited - ways to get around this. Factoring code out into shared Git repos (already supported in Hex!) is great for stuff like shared utility functions, but not for SQL. Metrics stores like dbt Semantic LayerMetricFlow, and Cube (already supported in Hex!) are helpful for query-like calculations, but are not useful for Python code or other elements, like visualizations or no-code cells. Shared docs with code that you copy-and-paste out is… well, that’s not really a solution, but I know many of us have resorted to this.

All-in-all, this re-work is a staple of many data workflows, and a pain point that we heard about all the time from our customers.

Meet components

So, we built Components: a new feature that empowers teams to operate with better collaboration and consistency.

Components are reusable groups of cells, and bring the DRY model from software development to analytics. Editors can easily publish new components, and import existing ones into projects. Changes to a component can be made once, and then propagate down into projects that rely on it.

Over time, your team can build up a centralized repository of consistent, usable logic, and empower others to do great things with data.

Creating components

You can easily promote any group of cells in a project to be a component. Simply use the (new!) multi-select feature to select a chunk of logic, and select “Create Component” at the bottom. You’ll be able to set some metadata, publish your new component, and replace the existing cells with the new component.

Create a component from cells in any existing project

Like Projects, Components can also be created from the new Components view, either from scratch or through copy-pasting groups of cells in.

Using components

It’s fast and easy to browse for available components and add them to a project:

Browse published components and add to your project

Hex’s reactive compute engine automatically picks out the defined variables in the component, and makes them available for reference in downstream cells.

If a change is made to the component source, Hex will indicate that an update is available, and you can quickly view the diff and pull a new version:

View changes and update components to keep projects in sync

Need to make project-specific changes to your component? No problem - you can opt to import a component as detached cells, or later “eject” cells from an already-imported component:

Get started with components today

Components are now available on all paid plans of Hex. Users on Pro can share up to 3 components with their workspace, with Teams and Enterprise allowing for unlimited shared components.

And, if you’re not using Hex yet, you can start a free-forever account here.

Welcome to the bottom of the post! You made it. Click below to get started, or to join our team and help us make Hex even more magical.