✨ Dynaboard is joining Figma!

Changelog 2023.02.07

  • 🚀  9 new features

  • 🏗  27 updates and improvements

  • 🛠  5 bug fixes

The new floating action bar contains the most common editor controls, including: edit / test mode toggle, viewport size picker, and color mode selector.
The new floating action bar contains the most common editor controls, including: edit / test mode toggle, viewport size picker, and color mode selector.

Edit & Test with the Floating Action Bar

  • 🏗 Select & Interact modes are now Edit & Test! In addition we’ve moved all of the common editor tool actions to a floating action bar at the bottom of the editor screen. There you can find the Edit / Test mode switcher as well as the selectors for testing different screen sizes and color modes.

Headers, Footers, and Sidebars

  • 🚀  Pages support new layout system that allows for consistent headers, footers, and left or right sidebars using custom components. Once created and added to a page, side bars can also be programmatically opened and closed using the $currentPage.leftSidebar and $currentPage.rightSidebar properties by setting them to either true or false.

Performance Improvements

  • 🏗  Application load times when deployed have been dramatically improved (with more to come) with a focus on improving Lighthouse scores.

  • 🏗  Function execution times for most resources have been improved with a 2x improvement for the TS Server, and frequently accessed functions seeing up to 3x faster responses.

  • 🏗  Editor responsiveness has been dramatically improved when switching pages and rendering iterators.

  • 🏗  KV Store has also seen performance improvements, and now returns up-to 3x faster.

Editor Invite Links, Authorized Domains, and Workspace / Project Invitations

  • 🚀 Configure your shared workspace with an authorized domain to share access with your coworkers using a dedicated link. No more need to invite the entire team one by one. However, when you do need to invite users individually we’ve also overhauled the invitation system to show invitations that have yet to be accepted.

Configuration and Secrets

  • 🏗 Application configuration and secrets now have their own sidebar panel with a newly streamlined flow for creation, deletion, and configuration of existing secrets.

  • 🏗 Changes to configuration values no longer require a refresh to be reflected in the app while using the editor.

Custom Sub-domains

  • 🚀 Support for custom sub-domains (e.g. application.yoursite.com) is now available on all paid plans.


  • 🏗 Clicking on another user’s avatar in the toolbar will now jump you to their current selection.

  • 🛠 Auto completion now opens when starting an interpolation by writing {{.

UI Components

Custom Components

  • 🏗 They now default to a fixed number of rows rather than a fixed row height to better support responsive designs.

  • 🏗 Support for passing functions through $props into components from the page on which they’re being rendered.


  • 🏗 The default markdown & link styling has been improved in text component.

Data Tables

  • 🚀 CSV and JSON download support has been added to data tables. Enable to allow users the ability to download the data backing a data table for easy analysis in other tools.

  • 🚀 A new link column type enables support for linking to any URLs from a data table (e.g. a link to a user’s website).

  • 🚀 A new button column type allows for additional custom actions to be taken on items in a data table (e.g. deleting the item, or copying a row to the clipboard) beyond the single event provided by clicking the row itself.


  • 🏗 Inputs now support left and right accessory icons for improved UI styling.

  • 🏗 Inputs with labels now support configurable label widths for better custom layout support.

Widget

  • 🛠 The sign-in widget has been updated with more consistent styling and error handling.


  • 🏗 Users can now jump directly to the underlying custom component backing an iterator from the iterator properties panel.


  • 🏗  Like custom components containers as default to a fixed number of rows rather than a fixed row height to better support responsive designs.

  • 🛠  Components in containers with stack mode enabled properly support % widths and heights. Also, more reliable overall.


  • 🏗 Charts now automatically detect and switch time formatting on the x axis when appropriate.

Resources & Functions

  • $crypto

    • 🏗 $crypto.random is now backed by the crypto.getRandomValues method for more cryptographically secure random number generation.

    • 🏗 $crypto.randomUUID now provides an easy way to generate random UUIDs.

    • 🏗 All features now supported in TS Server as well as TS Client functions.

  • $kv

    • 🏗  Now supports types and typeahead when programmatically accessing the key / value store.

  • $delay

    • 🏗  Setting a delay is now supported on TS Server in addition to TS Client.

  • _.

    • 🏗  We now support the full lodash library inside of TS Server and TS Client functions.

  • $csv

    • 🚀 CSV parsing is now provided as an option in TS Client and TS Server.

  • TS Client

    • 🏗 btoa & atob functions are now supported in TS Client.

    • 🛠  setTimeout when used with a promise has been fixed.

    • 🏗 $currentPage

      • .query object contains the parsed query string of the URL used to load the page.

      • .params object contains the parsed URL path as defined using a : in the ExpressJS routing style /page/:firstParam/:anotherParam

    • 🏗 $app

      • .colorMode can be used to determine if the users current colorMode is light or dark.

      • .baseURL provides the current URL where the application is being run.

      • .viewportWidth & .viewportHeight provides the current viewport width / height in pixels and can be used in conjunction with $breakpoint to build responsive UIs.

    • 🏗 $breakpoint

      • Provides Desktop, Laptop, Tablet, Mobile breakpoints at 1280, 1024, 768, and 320px.

  • 🛠  Fixed an issue causing infinite loops when using interpolation {{ }} in certain functions.

  • Function Arguments

    • 🚀 Arguments are now supported between all functions / resource types (except Python Server). Arguments can be used inside functions by using $args[I] where I is the 0-index of the argument passed into the function (e.g. $args[0] is the first argument).

  • Browser

    • 🏗 Soft refreshing of the current page is now supported as a browser function action.

Build web apps fast with Dynaboard — the low-code web app builder made for developers.