Knack Builder Usability
Consistent UI in the builder
In a new app, when switching between objects, fields, records, tasks, the UI was inconsistent. There is now a cohesive experience when changing between contexts initiated by the left menu bar.
Modern Live App setting
New apps now have the Modern setting enabled by default - no need to remember to switch from the Legacy view any longer.
All view names can be edited now, without requiring reaching out to Support for assistance.
Some views in the Builder preview show no signs of existence, for example, Rich Text views that may have been a placeholder to come back to.
To help customers locate these views and reduce confusion if they’ve intentionally (or unintentionally) added a view and forgotten it existed, we have included a badge element in the top bar similar to how we display the number of tasks that exist on an object, e.g. “Views (2)”.
Warning and Error Messages
We’ve been updating user-facing messages to ensure they are clear with the message they are conveying and ensuring their placement is appropriate for where they are displayed.
Example: I watched countless users get extremely frustrated with the wording on the left. A few wording updates have eliminated the ‘rage clicks’ for this particular message.
Old message on left, new message on right
Previously, when looking for Layout options for a Details view, they were not actually under the Settings option, where it says they are - it was very annoying and confusing.
We moved the Layout setting out of the “Add Details” section, and into the “Design Settings” section, and with a more descriptive name: Details Layout.
Also, the Label Format is now inside the Details Layout accordion, and Title & Description is now at the bottom. This was done to maintain consistency with other similar views.
The following views all have a separate section for editing/customizing the “details” item portion of the view.
- List view:
The Layout accordion is now Details Layout, and the Label Format was moved from the “List Settings” section into the “Add List Details” section inside the Details Layout accordion.
- Search view (when set to “Display results in a list”):
Minimal change. The Layout accordion inside the “Build Search Results” section is now Results Layout, since each search result is considered a “details” item.
- Map view:
The Layout accordion inside the “Add Map Details” section is now Details Layout, since each location in the map is considered a “details” item
- Calendar view:
Inside the “Build Event Details” section, the Layout accordion is now Details Layout and also includes Label Format, which was floating outside of it on its own. Also, the Title & Description accordion is now called Details Title & Description, since this is specific to the calendar event details.
All filters and rules that are based on date and/or time fields have consistent and expected behavior and results.
Multiple Choice Change Warnings
When a multiple choice field has a change in text, for example, changing “Customer Succes” to “Customer Success”, any fields, rules, or filters will still be looking for the original “Customer Succes”. The user now is aware of this, when previously, there was no prompt to check other areas.
Field Setting Changes
Previously, changing certain field types to a new field type would cause the complete deletion of all data. Although there was a warning, customers would not always read it and hit save, then have to work with Support to restore as much as possible.
We’ve made the save button inactive until the customer explicitly gives consent that they understand the effects of this type of change.
Wording update for Payments
Almost every new user we observed was wary of and unclear if “Payments” in the builder referred to their Knack billing or something else. We updated the wording from “Enable Payments” to “Enable Customer Payments” so it’s clear that enabling this allows them to accept payments, like Stripe or PayPal, from customers.
Reordering tasks and embed codes
Previously, tasks and embed codes were ordered based on when they were created, and not on anything else, and it was not possible to reorder them. When there are many embed codes and tasks, especially those that are dependent on each other, reordering (by dragging and dropping) allows users to make sure they can just understand their structures at a glance.
After searching for more than one keyword, the search would completely reset back to an empty state, causing twice the amount of input required from users. Now, the search field and records reflect the results as expected.
Table headers not sticking
Table headers in Live App views now have a true sticky header behavior when the table scrolls.
New No Code Options
Embed Code Options
We’ve added options to include font options and different options for displaying headers, header backgrounds, and header menus.
Some Knack customers host their own websites instead of using a knack-hosted domain. Generating embed code from the application builder allows them to paste an auto-generated HTML snippet onto their website’s source code, so they can use the full power of the Knack database. We’re offering more flexibility around styling and formatting options for their header and page menus, to easily customize the look and feel of sites by using options in Knack, instead of needing to use custom CSS.
Performance & Reliability Optimizations
We’ve highlighted that over the past 6 weeks since implementing a more holistic application monitoring system, we have seen a 27% reduction in response times leading to performance improvements across the platform. One specific optimization we’ve made thus far that is contributing to this uptick in performance are specific to recent reporting changes.
Previously, if you ran a report that returned an aggregate field (Count, Sum, Average, Min, Max), such as “give me the sum of all orders per location”, we had to select all child records then run the calculation in memory. In more technical terms, we were limited to this process:
- select all distinct locations
- for each location:
a. select all records for that location
b. do a (potentially blocking) loop through those records, adding up the order totals in memory
Two weeks ago, we implemented new logic that just runs a single query:
SELECT location, SUM (amount)
GROUP BY location
To imagine this on a larger scale, if you had a pivot table report, grouping by 2 different fields, and each one of them had 20 different possible values, the former logic limited us to making 20x20=400 separate queries. Today, the logic is performing this all in one single query.
We have a list of similar optimizations that we’ve been releasing as fast as we can that are helping the performance incrementally improve while planning out larger, hugely impactful changes.
For Reliability, one optimization we’ve made is splitting API calls into various pools depending on the request type. What this means is that an error in one part of the app is significantly less likely to impact requests, or work being done in other parts of the app. This allows us to quickly adapt and adjust CPU/Memory based on unique needs of various parts of the app.
In a fairly short time period, the Knack team has improved performance and reliability in our application as well as gained a deeper understanding of specific areas for targeted work, and this will remain our highest priority.