Skip to main content
Latest release:

πŸ“š Knowledge Library​

The Knowledge Library is a new set of workflows and features in Hex that empower teams to create knowledge from their work, rather than just standalone insights. You might remember last month’s announcement of new project metadata, including tags and statuses. Now, you can use specific statuses (like β€œApproved” or β€œProduction”) to include projects in the new Library view.

The Library UI is a new homepage view that only displays published apps with a β€œLibrary Status”, filtering out any active drafts, half-finished explorations, or archived and deprecated work. This is also the default view for View-only users, who are likely primarily interested in approved & verified work.

All the usual search & filtering options work on the Library, and we’ll be continuing to add new metadata that makes it easier to keep relevant knowledge easy to find.

We wrote some more about the Knowledge Library (and Knowledge in general) over on the Blog.

πŸ–ΌοΈ Embedding in Notion​

Speaking of Knowledge, we know a lot of you keep your organizational knowledge in Notion. Us too! Despite being founding members of the Anti Screenshots-of-Charts League, we occasionally found even ourselves adding screenshots of Hex apps into Notion pages where a link just wouldn’t cut it.

So, now you can directly embed Hex apps into Notion pages! Just copy & paste the link to a published Hex app into a page, and choose β€œEmbed Hex” when prompted. An embed frame will appear that you can resize appropriately. Check out the docs for all the details!

Note: There’s some more embed work coming swiftly down the pipe. We’ll be working on embed styles, improving embed authentication*, supporting embeds in more places, and more.

* We're currently working on an issue with authentication in the desktop version of Notion. Apps "shared with web" will work in both web & desktop, but privately shared apps will show as logged-out in the desktop version.

πŸ΄β€β˜ οΈ R sneak-peek​

R support has been a common request for as long as Hex has been available. We’ve always waxed polyglot about programming, and though it’s usually been about Python, we never planned to only support Python workflows.

Now, (beta) users can choose whether to begin a Hex project using SQL & Python or SQL & R. Many familiar features like reactive auto-run and Dataframe SQL work just as you’d expect.

It’s in Preview, so kinks are still being ironed out, and it may not reach full parity with Python for some time. We’re really excited to start supporting teams and individuals that primarily use Rβ€” if that’s you, please reach out for Preview access!

Other improvements​

  • We’ve added transformers to the default package library πŸ€—.
  • You may have encountered the β€œOutput of x MB is larger than the 10 MB limit” warning when plotting large datasets. We’ve bumped this limit to 50 MB, which should cover much larger plots.
  • You can now tweak project labels and descriptions right from the publish dialogβ€” So you can label a project β€œProduction” (and add it to the Library) right as you publish!

Bugs squashed​

  • We’ve fixed a couple of small issues that sometimes caused the β€œPublish” button to be inaccessible.
  • Clicking β€œGo to Cell” in app view would occasionally not actually go to the relevant cell β€” It now always does!
  • We’ve fixed an issue that was causing create table commands (CTAS) in BigQuery to fail.
  • Chart cells that are β€œDuplicated as code cell” are now properly sized upon duplication.

πŸ’¬ App comments sidebar​

We've added a sidebar to published apps that makes navigating comments more natural. Now you can pop open the comments sidebar to see all open & resolved app comments. You can quickly navigate around the app by clicking comments, and reply or resolve right from the sidebar. Check out a quick video walking through it.

πŸ“š More project details​

We've added project titles, statuses, and categories to the top of the Notebook view, where they're more easily seen and edited.

There's also a new piece of metadataβ€” Descriptions can now be added to projects, allowing for additional context, helpful links, or anything else you might want to add.

You can also use this metadata as a title & header for Story mode apps. Use the new App Display menu to configure what to show viewers of your app. This means you don't have to add markdown cells to serve as app titles, and can also surface helpful information about status, edit date, and authorship.

We've turned this off by default so you don't have duplicate titles in apps that may have existing markdown titles. Next time you're in an app and it has a markdown based title though, you know what to do... πŸ”ͺ

πŸ’‡β€β™€οΈ Revamped outline​

We've given the Outline a fresh new look! You will find it nicely streamlined and focused on cell outputs, so you can more easily navigate your projects.

You can also now filter the outline, choosing to only show Markdown cells or Input Parameters.

πŸ†• New project creation dialog​

Got a few "Untitled project"s lying around? Us too... so we've made it much easier to name projects right when you create them.

(pro tip: opt+shift+n will let you quickly create a new project, even if you're already inside of another project)

πŸ’³ Self-serve account management​

You can upgrade and manage your plan directly from the Hex admin panel! Head to the Admin > Upgrade Plan page to "swipe" your card and get up and running.

Other improvements​

You can now make project titles "super duper insanely long" without the title truncating as early.

We are beta-testing a method to improve performance for large projects with 100+ cells. You may notice scrolling working a bit differently - please let us know how it feels!

Bugs squashed​

  • The minimum value setting for axes in Chart cells is now correctly applied.
  • We've resolved a bug that was preventing dataframes being downloaded as .csv from the output of the cell.
  • We've resolved a bug that prevented some projects from being published when a specific kind of Table Display cell was added.
  • Sometimes, when creating a display table cell from a variable, the new cell didn't autorun; this has been fixed.
  • The issue of some Single value cell values being incorrectly rounded has been resolved.
  • We've made it easier to hover over and click the comment icon in an app.

πŸ™ GitHub package import​

Make use of the utility code you've got stashed in GitHub or get access to functions in private repos! All you need to do is connect your GitHub account to Hex to access the files and function you need for your analysis!

πŸͺ‘ Display tables for SQL cells​

Having to add a Display Table right after previewing the output of a SQL cell always felt a little repetitive in the redundancy department. Now, not only can you add the output of your SQL table directly to your apps, you can also enrich that output as a fully-fledged Display Table!

🚻 Share projects with a group​

Gather your #squad, you can now subset users into groups! Groups make sharing projects with a set of folks easy; plus we'll be adding more abilities and permissions to groups soon, stay tuned!

πŸ¦‹ Hex 2.0 migration​

Back in October we announced Hex 2.0 (has it really only been 6 weeks?!) and we hope you've been loving the all-new reactive re-compute model. This is a quick heads up that we'll be automatically migrating all legacy projects to Hex 2.0 before the end of the year.

What do you need to do to prepare? Nothing. Your projects will still run and return what you expect, but be faster and more intuitive for it.

Bugs squashed​

  • We've upgraded to the newest release of DuckDB! This mean previous dataframe SQL issues with the datediff function and handling of decimal types in dataframes have been resolved.
  • Occasionally failed database connections were not being closed, which could lead to a build up of connections. This has been resolved.
  • Pandas style tables are no longer truncated and require scrolling.
  • Chart cells can accept columns with parenthesis in the column name.
  • We've added support for more data types which can be used in dynamically defined Input parameters.

πŸ’… Conditional formatting in Table Display cells​

Following up on last month's all-new Table Display cell that included column string formatting (for currency, percentages, etc.), this month we're landing Conditional Formatting. You can now color-code tabular data according to multiple rules that can use numerical, string, boolean, and date expressions β€” no more Pandas style tables! Check out all the options in the docs.

πŸ“œ Edit history​

We've always had version history in Hex to let you restore previous iterations of your projects, but now we're releasing a rich edit history to let you know what actually has recently changed. You'll now find all edits, versions, and comments for a project in one unified chronological timeline.

We've also changed how you access this historyβ€” You'll no longer see it in the top bar, find it instead in the "History & versions" sidebar tab. See the docs for the full story.

πŸ§žβ€β™€οΈ Dataframe columns in Input Parameters​

If you've ever created a code cell that just runs input_list = input_df['column_of_interest'].unique() to feed into an Input parameter, you'll be excited about this one. Dynamic Input parameters can now select a dataframe column as the value source, without needing to generate a list!

This is a big time saver and helps keep apps tidy with fewer unnecessary code cells and one-off arrays.

Other improvements​

  • You can now toggle the legend on/off for encodings in chart cells (color, size, opacity, dash, or detail).
  • If you are on slow or spotty wifi, Hex will helpfully notify you that your connection is unstable and work may not be saved.
  • Markdown headers in apps now have anchor links, so you can send a link directly to a specific section of a published app.
  • When you auto-format code cells with the keyboard shortcut (esc + FS), a toast notification alerts you.
  • You can also now auto-format code without using a keyboard shortcut, from the cell menu.
  • When creating a new project, instead of assuming you want to begin with a python cell, we now ask whether you want to start with a SQL or Python cell.

Bugs squashed​

  • Secrets were erroneously highlighted as errors in code cells.
  • We fixed an issue that could cause a project to get stuck "Queueing" when in cell-only run mode.
  • We've fixed an issue where BigQuery connections were having trouble using the dbt integration.
  • Single value cells would error on more exotic data types, but can now accept a broader array of inputs including unknown data types.
  • We've fixed a bug that caused the publish dialog to occasionally show up empty

πŸ§‚ Table Display cells with column formatting​

We've revamped our Table Display cells to lay the ground work for some new features that are going to make working will tabular data so much easier! You'll notice that now you can customize the format of your numerical data β€” so go on and set the decimal precision, add a currency, or talk percentages! More on tables soon to come...

🎢 Multi-statement queries​

We've unlocked the ability to send multiple statements to your database in our SQL cells. Create, drop, insert, and update your tables at will! Add some Jinja to your queries and you'll take your database spell casting skills to the next level.

πŸ”’ Single Value cells​

Make a statement about the metrics that matter with our new Single value cells (aka Big Ass Numbersβ„’). Call out the top-level results of your projects in big ole fonts and contextualize them with comparisons to related data.

πŸ’œ dbt 🀝 Hex​

Quickly get the context you need on your datasets, without switching tools. Our dbt integration pulls metadata from dbt about freshness and recent tests directly into the schema browser.

Want to know more about our dbt integration? Read the blog or get the docs.

✨ Cell formatting​

Don't spend time nit-picking over the formatting of your code, just auto format cells with a quick keyboard shortcut, esc+fs!

Bugs squashed​

  • We've added several packages to our default set, including rtree, gspread-pandas, googlemaps, google-auth-httplib2, and tfcausalimpact
  • Command-mode for Input parameter cells was previously not available via the esc key, which has since been resolved.
  • Multiselect Input parameter lists no longer return to the top of the list after making a selection.
  • Keyboard shortcut to switch between views have been updated to avoid conflicts with some international keyboards.
  • A bug which prevented email notifications for comments left on a project has been resolved.
  • Renaming output dataframes of SQL cells was not occurring in place but is now behaving as expected.

Hex projects now have a fully reactive, DAG-based recompute model, which only re-executes cells as required based on upstream changes.

To enable this, all you have to do is set your Run Mode to Auto. Now whenever you update a parameter or a cell, Hex will analyze the code and re-run other cells as needed. If you ever want to go back to one-cell-at-a-time, you can easily toggle to Cell Only from the top bar.

Auto Run is a massive improvement for reproducibility, interpretability, and performance, both in Notebook and App views.

πŸ•ΈοΈ The Graph​

Hit the Graph button in the upper right to open an interactive DAG visualization of your project. All cells with variable relationships are automatically displayed, with their dependencies easily charted:

This lets you rapidly understand even a very complex project, visually exploring the flow of data and variables in a way that simply isn't possible from a typical notebook view.

Visualization options can be found in the πŸ‘οΈ icon in the upper right.

πŸ‘‹ $o long to $, Hello New UI βœ¨β€‹

With the magic of Auto Run, we have also eliminated the $. Hex input parameters now return plain variable names e.g., input_1.

You can also see the variables returned by any cell in the new UI:

We've also refreshed the Notebook view UI to make it easier to understand what variables are being returned by each cell.

You can also hover on any returned variable to see metadata about it and discover where it's referenced in the project. This works really nicely with the graph!