Skip to main content

Rill 0.22 – Better line charts

Β· 5 min read
note

⚑ Rill Developer is a tool that makes it effortless to transform your datasets with SQL and create powerful, opinionated dashboards.

To try out Rill Developer, check out these instructions and let us know over on Discord if you encounter any problems or have ideas about how to improve Rill Developer!

The Rill dashboard experience revolves around the axis of time to support people trying to make decisions. When business users are looking at dashboards that revolve around time they tend to be focused on the hours-to-days time range to understand what they just did or are about to do, with months and quarters used for reporting and goal tracking. Release 22 improves your ability to tune the timegrains and ranges to better suit your use cases.

0.22 has a number of big improvements, including:

duckdb 0.7.0 support. We took a beat to work through duckdb 0.7.0. Now Rill 0.22 will support this version of DuckDB by default. It’s so fun to build on top of a database that is improving at a steady clip! Read more about DuckDB 0.7.0 here. Some things this unlocked for us:

  • NDJSON file support – it’s now dead-simple to read NDJSON files. Try dragging and dropping an NDJSON file into Rill Developer.
  • better nested / JSON type support – accompanying that, we’ve improved support for the JSON type, as well as STRUCTs, LISTs, and basic MAPs.
  • faster Parquet / CSV writing – it should now be much faster to export data out of Rill Developer.

Substantially nicer line charts. We release every two weeks, which means that we are very deadline-focused with our features. The natural pressure of tying work to releases means we have to be honest with ourselves about the time it takes to land things.

Some features take a long time to get right, and it's worth it when we do. The line charts we use on our dashboard fall into this category. And to be clear, we didn’t **nail** every part of the line chart – honestly, the axes need some work – but we put together something that is a very solid foundation and improves upon the interactions and animations we already have.

For this release, the core improvement boils down to the line itself. And by the line, we mean the path SVG element. It turns out there's a lot to drawing an animatable line in SVG that never breaks! It took a couple of months of ambient tinkering to figure out how to solve this BI dataviz issue defensively. Here are the solutions we figured out, paired with the problems the solution addresses:

  1. interpolating different-length paths – we’re now utilizing d3-interpolate-path, the excellent standalone library by Pete Beshai, to tween between paths of varying lengths. This is actually critical for us; most data viz interpolation methods require your path of points to be the same length as the previous path. Removing this requirement actually liberates us to experiment with animations that previously would break the application. Real-world metric line chart conditions are not always so neat. Sometimes data is just straight-up missing or inconsistent. This enables us to smoothly tween between messes in a more elegant and useful way.
  2. chunking / clip paths – we’re now β€œchunking” the lines – determining the segments themselves and creating clip paths for regions where there isn’t any data. While this is a low-level implementation detail, it means now that we can accurately show missing data as, well, missing!
  3. singletons – we’re now showing singleton points in the line chart, which means that if you have a bunch of missing data, but one point out in the middle of nowhere, that one point is now visible & inspectable.
  4. improved mouseovers – the actual mouseover animations & design is much more thoughtful and less buggy. When you scan over the chart with your mouse the annotations do a much better job of tracking the location of your cursor.
  5. wider charts – the charts seemed a little small, so we widened them quite a bit. Widening charts increases the number of pixels we can put on the x-axis to make it easier for you to explore what each point in time means visually.

As always, we’re proud of this improvement, but really it’s the beginning of the journey to make The Best Line Chart in Industryβ„’. Expect regular updates on new parts of this in subsequent releases. We have a couple technical blog posts coming on this topic – stay tuned.

Better default time ranges & time grains. We’re beginning to refine how our dashboard works with time. We have a hypothesis that people will appreciate thoughtful defaults around time ranges, along with what β€œtime grain” should be used to roll up their data. With this release, we’ve re-tuned all of our time grains and time ranges, and now you can also more easily set your default time range and the smallest available time grain of the dashboard.

Custom time ranges. Sometimes it is easier to pick out specific dates vs always looking back from the last date that was seen in the data. This update includes a specific date picker to help you select oddly shaped or historic time periods from the dashboard.