Skip to main content
Latest release:

🏡 New homepage

We’ve rebuilt the Hex homepage to make finding important and frequently accessed projects easy.

An early beta user put it best: “all the stuff I wanted to access easier is now easier to access”. Mission accomplished 🫡.

The new homepage has 5 sections. Watch this quick loom tour, or read about them below:

  • Jump back in aka recently viewed projects. This is basically what the entire old homepage was.
  • Popular projects this week. This is across your entire workspace, so you can easily find the most important Hex apps for your company. This is my new favorite section.
  • Collections with new additions. Any collection that has a new project in it will show up here.
  • Recently published. This is a “news feed” of recently published projects from your workspace.
  • The Sidebar. We’ve moved Favorites to the sidebar, for both Projects and Collections. They’re easier to access, and out of the way of all the other sections.

You’ll also notice that each project in these sections displays a lot more metadata! Often a title isn’t enough to know if this is the thing you’re looking for. How many views does it have? Are they recent views? When was it published? Who made it?

These are all questions that the new project cards answer at a glance:

There’s a ton of careful thought that went into this redesign, and it’s an extensible framework we’re going to continue building and iterating on. Read more about the updates in the blog!

🗣️ Project @ mentions

You can now @ mention projects from comments and text cells.

This is a small but mighty feature that enables all kinds of useful organizational patterns. We are already using it internally to create some cross-linking between our core company metrics apps, and it’s a delightful experience to reference a project right in a comment.

📊 Chart fixes galore!

And I mean galore. Here’s a sample of them, which is limited only because my cmd+c & cmd+v fingers were getting tired.

  • You can now filter on x-axes that have dots in column names
  • Line charts can be grouped by double-quoted column names
  • Visual filtering now works when there are brackets in column names
  • Charts now show correct dates when column names contained dots
  • Tooltips no longer display NaN if a column name contains dots
  • Line charts with odd characters in column names now work
  • A large and diverse variety of manual tooltip related issues have been fixed
  • Color attributes now appear in tooltips even if they’re used in aggregations
  • Tooltips render properly when there are 2 series based on the same column
  • Tooltips should not fall back to UNIX timestamps when you show a non-axis column
  • Manual tooltips now support aggregated columns for double-pivoted-dual-axis charts.
  • Custom ordering of legend items now works as expected
  • Much, much more.

Charts have a lot of surface area! There’s so many config combinations, and input data can be incredibly complex.

We’re hard at work expanding chart functionality (check out facets if you haven’t yet!), but we’re equally devoted to making sure that basic chart functionality is… functional, no matter what data or chart config you throw at it.

Other improvements

  • Download as PDF now respects your current theme in the download.
  • If you’ve ever noticed strange duplicated outputs in a Hex project that went away upon refresh— congratulations! You saw a ghost that has now been captured, disciplined, and banished back to the astral plane. You will never see it again.

Fresh round of Hex features plummeting towards you at relativistic speeds. (wait, does that mean they’re coming really fast, or slow? I guess it depends on your frame of reference… 😎)

💎 Trellis charts

Chart cells now support faceting, so you can build beautiful, information-dense trellis charts with just a few clicks.

You might know these as trellis charts, small multiples, faceted charts, lattice charts, or just “that thing where the viz is split into a bunch of plots”. Whatever you call them, the premise is pretty simple: Choose a column to "facet" by, and your plot becomes a grid of subplots, broken out by that column.

This lets you display a lot more information without compromising— and often actually enhancing— the readability of a visualization. Done right, you can display 4 (or even 5, if you want to get really loco) dimensions of data at once.

Here's a really quick example of improving a cluttered, confusing viz by turning it into a trellis chart. The initial state here makes it really tough to notice any year-over-year patterns in item sales:

Breaking it out as a trellis chart faceted by year, it's immediately obvious that there's a crazy spike in two specific menu items in 2022. The entire chart is more readable, but the patterns in particular really leap out:

Sold yet? No? Trellis charts are really easy to configure too! Here's a 9 second gif of me going from screenshot 1 to screenshot 2 there, in real time. I count only 5 clicks!

And if you're still hungry for EVEN MORE trellis chart content... Here's a 3 minute video of me walking through the thought process behind that 9 second gif, which of course itself is an elongation of those two screenshots:

🗃️ Google Drive integration

Access Google Drive files directly from Hex, just like a locally uploaded file.

Once a Google Drive connection is configured in Workspace Assets settings, you’ll be able to browse and import files right from the Files sidebar of any Hex project.

You’re also able to natively write files to GDrive without any configuration or manual upload. Using a standard file.write() or dataframe.to_csv() with an external-files/googledrive/<your_drive>/<your_filename.csv> path will just work.

An important note: Because this is a workspace level connection, it's not possible to connect to a user's entire "My Drive". Instead, a Subdirectory ID is required to connect to a specific folder in Drive. To find your Subdirectory ID, navigate to the directory in Google Drive, and copy the ID after folders/ in the URL.

See the docs for more.

🩺 Magic for PHI 

HIPAA compliant customers of Hex can now make full use of our Magic AI features.

Hex’s Magic AI (Artifical Intelligence) features are powered by OpenAI, who we now have a BAA (Business Associate Agreement) in place with that allows them to process PHI (Protected Health Information) data for our customers.

This means customers of Hex that must maintain HIPAA (Health Insurance Portability and Accountability Act) compliance are now able to use Magic!

Workspace admins can enable Magic and configure the Data Manager from the Workspace Settings > Magic page. For more about our commitments to data privacy and security, visit trust.hex.tech.

Other improvements

  • We’ve added some handy new keyboard shortcuts to make working in large projects easier. Go try these right now so you bake in the muscle memory! I promise they will make you faster at using Hex.
    • Option + ⬆︎ and Option + ⬇︎: Jump to the top / bottom of the notebook
    • Cmd + [ and Cmd + ]: Step forward / backward through cells in the order you most recently edited them.
    • You can also access these from the command palette (Cmd + P)
  • The Bigquery DataFrames (bigframes) package is now installed by default, and users of BigQuery can create a new BigFrames session using hextoolkit. Stay tuned for more here 😉.

All the features shipping today are highly requested— I’ve personally fielded many requests from you all for some of these, so I hope you enjoy! The Data Manager is a particularly impactful new feature, but I personally am irrationally excited for the CSV UPLOAD CELL!!!1111

📖 Data Manager public beta

Today we’re opening public beta access to the Data Manager, a metadata tool that’s purpose-built to enhance Hex Magic’s SQL writing skills and custom tune them to your organization’s data.

The Data Manager provides a nice, simple interface for you to access and edit four different kinds of metadata about your data connections:

  • Schema, table, and column information from your data warehouse.
  • All your dbt documentation, live synced from dbt Cloud or manually added from dbt Core.
  • Priority rankings that determine which schemas, tables, and columns should be included, excluded, or prioritized for Magic AI.
  • Any additional descriptions or custom metadata you want to provide.

Hex uses this metadata to create vector embeddings to power the semantic search algorithms that are the secret sauce in Magic’s SQL generation engine. Better metadata = better embeddings, and better embeddings = better SQL generation.

The coolest part is that you can provide really custom guidance using normal natural language. Magic is incredibly responsive to things like “only use this table if the prompt explicitly requires raw stripe data, otherwise use fct_orders”, or “this column contains a stringified array of items”. You can essentially educate it as you would a human member of your data team!

I spent about 10 minutes setting up the Data Manager on an internal connection yesterday, and was able to improve SQL generation success rates from 82% to a dazzling 96% on our prompt evaluation suite!

We just published a very detailed blog that introduces the Data Manager and highlights some real examples of using it to tune SQL generation, with specific advice on how to leverage it yourself.

Data Manager is available for workspaces on the Professional plan and above. Workspace admins can find the Data Manager from the bottom left of the homepage sidebar, or at https://app.hex.tech/your-workspace-id/data.

🆙 CSV upload input

The CSV upload input parameter… lets app users upload CSV files! Need I say more?

It also automatically parses the uploaded file and returns a DataFrame for use in downstream cells 🙂.

I’m willfully choosing to not look at the data and am just going off of ✨vibes ✨ here, but I think this has to be one of, if not the most requested feature in our backlog.

And I can see why! Letting end users of apps upload their own data lets you do some pretty cool stuff. A neat hack I threw together: If you pair it with a table input, you can even give app users a full spreadsheet editing experience that culminates in visualization, or data transformation / writeback.

Learn more in the docs.

💼 Presentation mode

Pop your app into Presentation mode to get a full screen experience that splits tabbed apps into individual slides that remain fully interactive.

For years now, we’ve run our regular metrics reviews and Board of Directors meetings out of Hex apps, rather than slide decks. Scrolling through an app always worked just okay. Tabs were a big improvement, but for a real deal meeting, you can’t beat a good old fashioned slide deck.

Unless, of course, you turn an interactive data app into a slide deck, while maintaining the ability to interact with and explore data live, right from the slides 😉. Next time you’re presenting complex findings or doing a metrics review, split your app into tabs and give presentation mode a spin!

Presentation mode is available for workspaces on the Professional plan and above.

🧟 Auto Archive

Workspace admins can now configure auto-archiving of projects based on time elapsed since they were last edited or viewed.

Auto archive settings

This is a pretty straightforward addition, and we hope it will help keep your workspace tidy. What happens when projects get archived?

  • They are excluded from search.
  • Any associated scheduled runs are disabled.
  • They are NOT deleted, and can be unarchived if needed.

This is a way to gain some ground back from all the Untitled projects and half-done explorations lying around your workspace, as well as old masterpieces that were useful at one point, but aren’t in active service anymore.

Auto archive is available for workspaces on the Team plan and above. Find the config in Settings > Organization.

Other improvements

  • Users that have the Slack integration installed can now respond to access requests to projects from within Slack! And if a coworker gets to the request before you do, the Slack message will be updated in-line to let you know. (Note: for now, this only works for users on our multitenant stack, i.e. if your Hex URL starts with app.hex.tech.)
  • We’ve improved how chart cells are displayed in the outline sidebar! They are no longer (quite as) squished.
  • Single value visualizations now support standard Python negative indexing, so you can select the -1th row to reliably grab the last row in a dataframe of dynamic length.
  • Assorted improvements and bug fixes to in app notifications.

Here’s one of the founding principles of Hex: You can do the best analysis in the world, but it won’t be useful unless the right person can see it.

Until they see it, it is Schrödingers data analysis. Useful? Not useful? A radioactive, poisoned cat? It is actually all three.

There’s no way to know for sure until someone sees your work, understands it, and makes a decision based on it. This is why Hex lets you turn your notebooks into reports that others can see, understand, and action off of.

And today we’ve got a bunch of improvements to the way you and your team consume data from those Hex apps you build! Caching, filters, notifications, exporting projects— it’s all a little bit easier now.

⌛ App freshness

You can now set a cache timeout for entire published apps. When a viewer opens a “stale” app, it will automatically begin refreshing in the background, and alert the viewer when the new results are available.

The new app freshness indicator.

Previously, updating results in an app required a scheduled run. With the new “Rerun app if stale” setting, any time a viewer opens an app, Hex will check if the results are fresh or stale. If they’re stale, Hex will automatically start refreshing, and let the viewer know when there’s new data.

This means less configuration, fresher data for everyone, and no scheduled runs on that app people stopped looking at months ago— potentially saving you some warehouse $$!

Editors can configure the time-to-stale and refresh behavior from the App settings sidebar. We’ve defaulted the "Rerun app if stale" setting to off, but we recommend you enable it for apps going forward!

Learn more in the docs.

🔍 Project filters

Project filters make apps dynamic without the need to parameterize SQL and Python by hand. Just create a new filter, attach it to app elements and dataframes by pointing & clicking, and you’re done.

We teased Project filters last month, and they are now fully available for everyone to use! You can get started by choosing “Add project filter” from the notebook or app builder in any project.

Project filters work especially well on apps with many tabs, or in complex projects where parameterizing tons of SQL queries would be a chore. They also make it easier for viewers to reason about how apps are being filtered, and they work seamlessly with the cross-filters that viewers can configure themselves!

Looking for more guidance on how to use project filters alongside filter cells and input parameters? Check out the docs, or watch this 5 minute Loom video where I explain the difference:

🔔 Notification center

Editors and viewers can now manage all Hex notifications and access requests from one central place.

This new notification center is available in the sidebar of every page in Hex, so you can easily triage failed runs, project access requests, and new comments without having to slog through your email or Slack.

📜 PDF export

You can now schedule PDF captures of an app, and viewers can export PDFs right from the published app.

You know who you are, PDF lovers. And I know you have your mysterious reasons. Presumably with this feature you are now one step closer to global domination. I just hope you remember me when you seize control.

Quick facts: PDFs are exported with the visible app layout at time of publish, so build your apps for export if you know they’ll be consumed that way! Anonymous users (if your project is shared publicly) cannot export PDFs.

PDF Export is available for Teams + Enterprise customers.

🤳Mobile improvements

We heard you, subway riders, busy parents, and the rest of the diverse compulsive Hex app checker community. We’ve updated our mobile styles to make Hex apps nice to use on your phone!

Me and my nan checking our latest MRR numbers.

These improvements only apply to the published app view for now, and we know there’s a lot more work to do on the homepage and list views.

Other improvements

  • We’ve patched up some issues with the dbt integration in the data browser not showing column-level information.
  • Tidied up some of the styles on table display cells on large screens
  • We removed the 'day' option from the chart cell Time Unit picker. This is a tiny thing, but it always peeved me to click it and get the Day of Year 😑. You always want 'date' instead, trust me!

The Hex team was at dbt Coalesce in San Diego last week, and I had the tremendous good fortune to meet a ton of you in person! Thank you so much for coming by and saying hello 🙇.

Also at Coalesce:

  • Hex won dbt’s Innovation Partner of the Year Award for our Semantic Layer integration (blog).
  • Me and my colleague Matt spoke about the metadata architecture behind Hex Magic (recording).
  • Amanda from our data team gave a fantastic talk about how we do marketing attribution (recording).
  • Honestly just a ton of great talks that have nothing to do with Hex! They’re all on Youtube— binge away.

But that was last week, and I think we agree: the past is over. This week, I’ve got some lovely new Hex features for you across the entire platform, from dbt to debugging. Read on for the updates!

📏 dbt Semantic Layer Cell

Hex’s integration with the dbt Semantic Layer makes it easy to bring trusted metrics and dimensions into your Hex projects, with a drag & drop UI that now features metric search and a snazzy improved layout.

We’ve completely overhauled this cell to support the new v1.6 of the Semantic Layer and use the new dbt Discovery API. We’ve also opened this integration up to more data connections: It’s now available for BigQuery, Redshift, Databricks, and Snowflake connections!

With this cell, technical users can have confidence that the foundational data for their analyses are standardized and approved, and less technical users can use the simple UI to explore company data without writing any code.

Check out the docs to see how to set it up.

☃️ (even more) Native Snowpark DataFrames

Hex already had the best environment for Snowpark work, with one-click sessions and the ability to initiate Snowpark workflows from a SQL cell. Now, Snowpark DataFrames in Hex have the same level of support as pandas DataFrames, fully supporting:

  • Chart and Table display cells
  • Pivot, Filter, and Writeback cells
  • Polyglot SQL → Python → SQL workflows. Just like other DataFrames, now you can query a Snowpark df with SQL, operate on it in Python, query that output df in SQL, and so on.

To answer your first question: We’re not just doing a df.toPandas() in the background! When you use a Snowpark DataFrame in a native Hex cell, the full results are still not pulled into memory— Hex pushes down any chart aggregations, transformation logic, or writeback instructions all the way down to Snowflake, and only fetches that operation’s results into memory.

🐛 Debug mode

Using debug mode to fix a published app.

It can be hard to figure out what’s wrong with a broken Hex app! You can’t be sure if changes have been made to the notebook since it was last published. You restart & run all, but don’t see the problem— wait, what input parameter values were you using? It can be a total slog.

Debug mode fixes that. Now, if you get an error in a published app, you can enter Debug mode. This gives you a side-by-side view of the app version that’s erroring (with all the input parameters and filters that might be causing problems) and the notebook that reflects that specific app state.

I debugged four old broken apps to test this, and it felt so natural! It was so easy I was actually sort of unimpressed, until I turned the feature off and went to try the old way— and genuinely couldn’t figure out the problem with an app.

Other improvements

  • We’ve made improvements to workspace search to better support partial matches. “Rev” is now more likely to match “Revenue”, and so on. We’re continuing to work on improving search!
  • We now have multi-tenant HIPAA compliant hosting! Previously you had to be a single-tenant customer to get this, which can come with a lot of baggage. We’re proud to now offer it in a more standard multi-tenant environment.
  • Last week was “Hack Week” for the Hex team… so expect lots of interesting little things coming down the line. If you can guess which items from the next couple product updates are the results of Hack Week and not regularly scheduled product programming, I’ll mail you some Hex swag.

Today, we’re introducing a new version of Hex, and buckle up, because this release has everything. Cutting-edge AI features? Check. Big foundational re-writes? You bet. Shiny new design? Of course! It’s a whole version number – what’d you expect??

If you missed the live event earlier, you can watch the replay and read our blog post here.It has tons of exciting, high quality graphics that explain these features really well, so I really recommend you check it out!

This changelog entry will walk through the greatest hits— but fair warning: this is still by far the longest changelog in Hex history!

Buckle up.

🔮 Magical AI assist features

🤖 Magic Analysis

Hex can now kickstart a whole analysis for you with AI.

Enter a prompt, and Magic Analysis returns chains of cells – including queries, explanation, and visualization. Hex’s notebook format really shines here, combining the best of a chat UI with a powerful, functional editing experience.

This is in private beta today. To get more of a sense of what it can do, you can watch a detailed demo at hex.tech/magic!

📊 Magic Charts

Magic Charts make it effortless to build and edit beautiful visualizations— the name says it all! Type a prompt, get a chart.

I personally love using this to make bulk edits to charts, changing 10 things about the config without having to navigate any menus.

🗃️ Data Manager

The Data Manager lets you control all the metadata that powers Magic for your workspace. It shows you all the information Hex automatically pulls from your dbt docs and warehouses, and lets you add further context, guidance, and prioritization.

This lets you dial in the behavior of Magic to be just right for your team. Speaking from our internal experience, a little work here can have a tremendous impact on the quality of AI results.

The Data Manager is currently in private beta.

🏗️ An all-new app builder

🎨 New layout engine

The new App builder is now a full editing experience in its own right. You can add new elements directly from here, drag/drop and resize with more fidelity and even – yes! finally! – edit text directly in-line.

I still love my notebook, but I know there are many of you that are really excited to be able to build whole projects right from the app builder!

🌪️ Powerful, automatic filters

Hex 3.0 includes huge improvements to filtering workflows. When building an app, editors can tie multiple app elements to one globally accessible filter, so that end users can more easily slice and dice reports in specific ways.

These are super easy to configure. Select a few elements, and just click one button to add a new filter.

And filtering works for end users too, with zero config required. Viewers can visually filter any chart in any app, and automagically cross filter other elements without any backend mapping.

Filters are rolling out over the next week.

🧭 Explore & View

Astute readers will remember this as a sneak preview from last release notes, but it's also a key part of the Hex 3.0 package.

Every chart and table in a published Hex app is now a fully interactive, drillable, filterable, and explorable jumping off point for end users to answer their own questions.

Click in to any element to remix the data just how you want— change how it's sliced, add filters, or even drill down into each of the underlying data points.

💅 New coat of paint

Our team has also redesigned the entire core workspace with an eye towards making it cleaner, simpler, and less cluttered (but no less powerful!). You’ll find a cleaner UX, with some new styles, and little surprises.

We’ve been using it internally for a few weeks– it’s a little bit of adjustment, but then feels super natural.

🏎️ Powerful new compute model

👯 An all-new, parallel compute engine

Hex 3.0 leverages our past work on the dependency graph to become the first notebook to support parallel execution. We use the project's DAG to determine which cells must be run sequentially, and which ones can be safely run at the same time.

This is a night-and-day performance difference, especially in complex apps with lots of warehouse SQL queries.

This works for SQL cells starting today, and we're expanding support to most cell types soon.

🐍 Native Python dataframe pushdown

Cloud data warehouses have made it really easy to work with data of tremendous scale, pushing any analyst's SQL compute from their laptop into an unimaginably powerful warehouse backend. Python... has remained trickier at scale, still requiring a lot of manual gymnastics and hand-rolled connections.

Now, Hex 3.0 makes it just as simple to push down Python to the warehouse! This means you can run massive data workflows and ML pipelines in Hex, using the leading cloud data infrastructure solutions, as seamlessly as if they were local dataframes.

We are launching this with two great partners— Snowflake and Google BigQuery— and we’ll be adding full Spark support as well.

You made it to the end! I am so excited for you to get your hands on the new Hex. Let us know what you think of it 🙂.