Skip to main content
Latest release:

Happy New Year! Here at Hex we took a few days to rest and recharge, and are feeling re-energized to take on the new year!

And boy oh boy are we taking it on — we’re ushering in 2023 with one of our most exciting features yet: Components.

We have also snuck in a few oft-requested enhancements for some of our existing features - including a big upgrade to Single Value cells. Read on for more...

🧱 Components

Ever find yourself rewriting the same logic time and again? Or copy-pasting a query from a doc? Or finding out your colleague wrote the same thing just a little differently?

Us too, and it isn’t fun. So today, we’re introducing a new way for teams to collaborate consistently within Hex: Components. These are reusable groups of cells that can be written once, and used anywhere.

You can easily create a component from an existing project: just select a few cells, click "New Component" and share it with your team:

You can then share your component with other users on your team or with your workspace, and they can easily reuse the logic across their projects.

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

Components are available now for everyone (and Teams and Enterprise accounts can share unlimited components with their workspace).

🔢 Single value cells now support dataframes

You can now move seamlessly from a SQL result to a Single Value cell, without taking a detour into Python to extract a specific value!

Yes, that means you can go ahead and delete the Python cells that just have value_to_display = dataframe_name['column_name'][0] in them. Comparisons work seamlessly too.

⏱ Scheduled runs manager

Hex Admins can now manage all scheduled runs in their workspace from a single view. No need to @here the data team and ask who’s using up all those kernels. Scheduled runs manager is available in the Admin panel for Teams and Enterprise accounts.

Other improvements

  • Previously when a dataframe had two columns with the same name, we sometimes renamed the second column for you, but often didn’t, leading to errors in downstream cells that required unique column names. Going forward, dataframes will always have unique column names, making the dataframe easier to use downstream.
  • If your Athena data connection has access to multiple data catalogs, we now make sure to show all of them in the schema browser.
  • We’ve improved how our API handles invalid or extraneous parameters. Rather than ignoring, we will now return a 422 response, with a payload detailing the invalid or unfound parameters.

Hey everyone! We have been cookin’ up some amazing stuff, and have something really special to share today.

📈 All-new chart cell

Our old chart cell was… good? It was fine. Better than writing a dozen lines of matplotlib. But we all know it could be so much better.

We heard you, loud and clear, and we have been working hard on a complete, ground-up re-write, and we’re so excited to share the final product.

This new cell makes it easier to configure charts of all kinds, including better support for things like histograms, multi-series legends, and tooltips. It’s really an entirely-new experience, and we hope you love using it as much as we have during our testing.

Check out the Blog for more info (but really, you should just jump right into Hex and try it out)

⬇️ Visual filtering

This new foundation has allowed us to build something really fun – interactive visual filtering!

With visual filtering enabled, charts return dataframes representing the current selection, just like our no-code Filter cells. This turns charts into a tool for interactive, visual data exploration: you can display the resulting records in a table, or further slice-and-dice them in another visualization.

Visual filtering is also available in published apps, allowing end-users to directly interact with reports, dashboards, or tools you publish in Hex. This can completely replace complex, tedious workflows with multiple input parameters and filter steps. Just point, click, and go.

🎨 Custom color palettes

Our most-frequently requested feature for charts (besides, well, making them better) – you can now configure brand-specific colors and use them across all charts in your organization.

You can configure these in the admin panel, adding up to 20 colors, and specify which palette to use as default. Updating the palette will change the colors on existing charts, so you don’t have to go manually update each one!

Other improvements

  • When you start typing a comment but click away, we now store your unfinished thought in the comment for you to return to later.
  • In the same spirit, we also removed the requirement to hit “Save” when configuring an input cell — clicking out of the UI also saves your settings.
  • CSVs now have a useful filename when you download them, concatenating the cell name with the current timestamp. Be gone, export (12).csv!
  • We fixed a bug where Redshift clusters with multiple databases insisted on showing just the one database. As a result, datashares also show up in the schema browser. While we were at it, we also made Redshift external tables appear as well.
  • PS: Pivot and Filter cells now work with query results. Watch this space for more news ;).

We've got some great updates for you today, from improvements to your most used features to flexibility upgrades and quality of life fixes.

I really encourage you to jump into the product and check out the new Data Browser. It's hard to represent in just a few words and tiny images how flexible and powerful it feels to use. I'd love to hear what you think!

🔎 New data browser

Searching and discovering data in connected data sources just got way better. Our all-new Data Browser is faster, prettier, and more useful than ever before.

Search is improved, schemas and tables unroll in one tree view, and you can pin your favorite databases and schemas— we hope you love it as much as our data team.

To tell you all about that, here’s Amanda, one of our Analytics Engineers, showing you how she uses the data browser:

For more information, check out the docs— or jump right into Hex and try it out!

⌛ Flexible scheduling

Scheduled runs can now be configured to run on custom cron schedules. What the heck’s a custom cron schedule? Cron strings are a shorthand for specifying complex date and time intervals; Say you want to run an app every three days, at 6:05am and at 6:05pm. Cron represents this as 6 5,18 */3 * *.

Now you can use this syntax in your Hex schedules to sync up app runs with warehouse updates, morning syncs, or anything else— say, at 08:04 AM, between day 15 and 16 of the month, and on Thursday and Tuesday, February through March.

Don't speak cron? Me neither. crontab.guru is a great website for constructing complex cron strings, and the Hex scheduler translates to plain English to make sure you know exactly what you’re deploying.

The Projects homepage can now be sorted by recent project views, so you can quickly get a sense of what apps are popular lately in your workspace. The timeframe for view counting is configurable, so you can toggle between all-time classics and up-and-coming stars.

🟢 Hex status page

Hex has a new status page that sits separate from our production infrastructure, so you can always stay up to date with any incidents affecting Hex.

We work hard every day to make sure you don't need to use it, but you can always find it at https://hex.tech/status.

⚠️ Dataframe SQL upgrade

Dataframe SQL cells are getting an upgrade! DuckDB, the backing query engine, has a new version with extended support for both Decimal type columns and columns with timezone-aware timestamps. We will be making this upgrade on November 10, 2022.

Once upgraded, decimal columns will no longer be cast as strings in order to preserve precision. Instead, you’ll now have the option to use the same “Infer numeric type” option as in Database SQL cells (more about this feature here). We expect this change to impact a very small number of projects. To avoid any loss of precision, turn off the “infer numeric datatypes” option on your Dataframe SQL cells. Additionally, projects which rely on Dataframe SQL cells returning Decimals columns as a string type for downstream analysis will need to be updated to instead accept numeric types. If you have question about the impact of this change to your projects reach out to [support](mailto: [email protected]) for more assistance.

Other improvements

  • Postgres data connections can now be configured with both cert-based authentication and user/password authentication.
  • We’ve greatly improved Redshift writeback speeds, which were nothing to write home about before. In a test on a 4,000 row table, execution time dropped by *****31x*****.
  • Dark mode automatically turns on based on your computer’s system preference. You can still choose always-dark or always-light
  • Map cells can now be resized vertically

💱 dbt Semantic Layer integration

Today we’re releasing a powerful, first-class integration with the dbt Semantic Layer.

At the heart of it is a new Metrics Cell: an easy-to-use UI that lets anyone access trusted, governed metrics, without writing any code. Users can specify metrics, dimensions, and time grains, and get back a data frame that they can use to analyze, visualize, and share.

But there’s more – connecting to the dbt Proxy Server unlocks another superpower: the ability to write dbt-flavored SQL, right in Hex. Now you can use refs, macros, and sources directly in your queries.

We’re so excited to unleash the full potential of the work Analytics Engineers do every day, and empower thousands of users to more easily ask and answer questions of data.

Read more about these new features over on the Blog.

Today we’re launching two new capabilities for Hex:

  • First-class integrations with popular orchestration tools Airflow and Dagster
  • A public API, allowing you to programmatically run Hex projects from other systems

Together, these represent a new set of super powers for integrating Hex in the rest of your stacks, workflows, and systems. We can’t wait to see where you take it!

🐙 Orchestration integrations: Airflow and Dagster

You can now schedule Hex apps to run as part of an Airflow DAG or Dagster job. This lets you keep apps up-to-date with your latest data syncs, or do ad-hoc runs with custom input values as part of a complex data pipeline.

Here's Friend of Hex, Pedram, with the details:

These orchestrated runs kick off a new run of the app, optionally set the user-facing cache, and return a link to that particular app run (and other metadata) that you can use downstream.

Airflow & Dagster integrations are available to workspaces on the Teams plan or higher.

🤖 Public API

We’ve also released a public API with all the endpoints you need to build your own version of these integrations, or something totally unique.

There’s four endpoints in v1.0.0: RunProject, GetRunStatus, CancelRun, and GetProjectRuns. Like the orchestration integrations, RunProject can be used both to trigger runs that set the user-facing cache of an app, or to generate custom one-off runs with specific input parameters.

See the full API docs here for more information. We can’t wait to see what you build!

API access is available to workspaces on the Teams plan or higher.

♻️ GitLab sync

Git sync now works with GitLab, in addition to GitHub. The flow is exactly the same, you can just add GitLab as a new source in addition to GitHub!

For more information on our version control workflows, check out the git sync docs.

Git sync is available to workspaces on the Teams plan or higher.

🏎️ BigQuery Acceleration

We updated our BigQuery data connector and those extra-large queries you’ve been writing will see some major performance improvements. In our tests, we've seen queries returning 250k rows run ~5x faster and even greater improvements for larger queries.

To get these improvements, you have to toggle on the “Use BigQuery Storage API” option in your data connection’s settings. You’ll also need to grant the "BigQuery Read Session User" role to the Google Cloud service account used for the connection.

👑 Admin workspace asset usage

Want to delete an old connection but nervous it might break production apps? Admins can now see how many projects reference each Data Connection, Secret, or Github package in a workspace.

Admins can also drill down into a list of those projects, which is extra powerful when coupled with…. dun dun dun….

👀 Revamped Project View Stats

We’ve made big updates to project view analytics, moving it up to the top bar and improving the “See more” view. You can see all-time view statistics, latest version views and recent trends, and a list of recent unique viewers.

Now you can easily find out if your latest app is a viral success, or if that connection you want to delete is being used by any active apps.

Other improvements

  • We’ve made the markdown emoji picker less excitable, so it only shows up when you actually want to add an emoji and not just anytime you want to add a semicolon.
  • Okta and other directory syncs should now happen much more quickly.
  • Hex has better support for other languages like Japanese, Arabic, and Cyrillic in our rendered snapshots and images.
  • We’ve improved sorting behavior in complex, multi-level pivot cells.
  • We’ve improved Table Display cells ability to display pivoted DataFrames.

This round of updates is entirely focused around improving your quality of life while you work in Hex.

Apps now run faster, filter cells are easier to use, and you can drag 'n' drop cells in Notebook view. You can even copy and paste cells between projects.

🏎️ App first run acceleration

Folks, now that you have heard my story,
Say, boy, hand me over another shot of that booze;
If anyone should ask you,
Tell 'em I've got those Hex project First Run Blues.
- https://www.youtube.com/watch?v=EcXSbCXxGzw

Previously, when you loaded a published app, you might have experienced what we’ve come to call "the first run blues": even though an app’s cached view loads instantly, changing an input parameter for the first time triggers a really slow run.

Basically, Hex apps need to do an entire top-to-bottom run just once. After that complete run, everything feels snappy as the reactive execution engine determines which cells to run and which to leave untouched.

Today, we’ve cured these first run blues— not with a shot of booze, but with "app run acceleration". This enables a new option for your apps to "pre-run on page load" – basically kicking that first run off in the background, to shorten the time for first user interaction.

The end result is snappier-feeling, faster-to-interact-with Hex apps for your users.

This feature is available for workspaces on the Team plan and above.

🐲 Cell Drag ‘n’ Drop

You can now drag ‘n’ drop cells in projects to reorder your logic.

Every cell has a little handle near the title that you can grab to start dragging. When you’ve dragged it to a good new home, move your pointer between cells until you see the "Move cell" bar appear between them— and drop!

🌪️ In-app filters

We’ve made some great updates to Filter cells. The biggest change is that Filters can now be exposed to end users of published apps, just like input parameters.

As an author, you can allow users to edit the entire filter configuration (eg: which columns are filtered and what kind of condition is applied), or limit them to only edit the filter values, as shown in this clip:

You’ll also notice that these filters have dropdowns of options, not blank text boxes! We now pick up values from the underlying columns and present them for selection.

Plus, filter drag ‘n’ drop 😎. Why let entire cells have all the fun? You can now drag and drop conditions around within filter cells to easily reorganize complex logic.

✂️ Cross-project copy & paste

The tried and true cmd+C → cmd+V copy and paste workflow has a new powerup: Cells can be copied and pasted between projects.

This works, well, exactly like you’d expect it to work: Copy some cells in one project, paste them into another, bim bam boom, you’re done.

The trusty old cmd+c shortcut will copy any cells you have selected in command mode, but you can also use the ··· menu on any cell to copy all upstream, downstream, or any connected cells. This makes it really easy to move complex logic between projects!

Other improvements

  • We’ve added support for connecting to Redshift via SSL.

  • You can choose to disable the datatype icons on Table Display columns, leaving more room for the column name.

  • Changes to chart configuration are now "debounced", meaning they wait a couple milliseconds to see if you’re going to make another change before they start re-running the chart.

  • We fixed a bug that caused chart cells to error on null dates.

  • We’ve improved our handling of messy data in map cells, letting you plot data without having to remove Nones or cast strings to numbers.