Skip to main content

App freshness, project filters, and app viewing improvements

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!