Introducing Console 2.0: Functions

Carla
Appwrite

--

Our main goal while redesigning the Appwrite console was to improve the user experience in line with the needs and requirements of developers looking for a BaaS (Backend as a Service) solution. While keeping our core values, such as simplicity and consistency, in mind, we attempted to understand the essential problems developers faced in the previous version of the console.

With the collaboration of our developer community, we gathered feedback and prioritised a few updates to the functions screens.

Proposed updates to the Functions screens based on effort vs. impact

Let’s take a closer look at some of the changes we made.

Home screen details

Our research showed that users wanted to see more details about their functions without the need to navigate to another screen. Like a few other screens in the redesigned console, the new design provides those extra details: function IDs that can easily be copied, the details of the next scheduled CRON job if a time period has been set, or if the user has yet to create a deployment for a function.

Function creation

There is so much more to creating a function than simply choosing a name and selecting a runtime. Community feedback indicated that in the previous version of the console, it wasn’t apparent that you could customise a function during the creation process. Setting execute access, scheduling deployments, or adding variables — things our users felt were essential for customisation — could only be done after a function was created.

The new function setup process now guides users through these optional extra steps, and once complete, directs them to a new Deployments tab where they can create a deployment.

Animation of the creation and customization of a new function in the Appwrite console
The new Create Function flow

Deployment details

Speaking of deployments, a common issue that arose throughout our research was that the previous version of the console did not make clear which ones were active versus inactive when viewing a function’s details. We decided to separate this information from the function details entirely and create a Deployments tab where active deployments are displayed at the top of the screen. Inactive deployments remain visible in a more condensed table below the currently active deployment. This is in contrast to the previous design, which gave unnecessary emphasis to the name of the function and the function runtime, and the deployment details were displayed in a single table, active or otherwise.

New versus old deployment details in the Appwrite console

Execution (log) details

When engaging with our users, there was some confusion as to which logs were being displayed and where in the Functions screens, so our first line of business was to specify that the ‘Logs’ mentioned in the tab navigation were, in fact, execution logs. We changed the name of this tab in our redesign to reflect this, and so far the response has been positive.

We also made the decision to include tags with a hover state to display the trigger status of an execution. If an execution was triggered by an event, on hover the user can see the details of the trigger event. If the execution was triggered via a schedule, on hover the user can see the scheduled time for the next execution. (Currently, nothing happens when hovering over the ‘http’ trigger tag).

Full-screen deployment & execution logs

When viewing logs for either deployments or executions, users will now have the full screen at their disposal. Previously, users were limited to viewing their logs in a modal — which is fine if there are only a few lines in the log to view. As it turned out, there were more than a few instances where a user’s build log would span hundreds of lines.

Full-screen (new) vs. modal (old) display of execution logs in the Appwrite console
Full-screen (new) vs. modal (old) display of execution logs in the Appwrite console

Editable function variables

Another often-requested feature for the Functions service was the ability to edit variables. This wasn’t technically feasible for us in the previous version of the console. If users wanted to edit a variable, they would have needed to delete it and create a new one with the updated details. More recently, our talented engineering team overcame this roadblock. As a result, the redesign of the functions settings screen includes a menu to allow for the editing and deleting of variables. We have also added an inline interactive text component that permits users to view variable values without the friction of having to click to open a modal to see this information.

Animation of editing an existing function variable key name in the new Appwrite console

What’s next?
We may have overhauled our console design, but we are far from finished. Design is an iterative process, after all. We are working on further improvements to the Function screens, including a GUI for scheduling CRON jobs and GitHub integration for deployments.

Thank you for being a part of our journey as we strive to create the best developer experience. We hope you enjoy these changes to the Appwrite console. As always, we’re more than happy to hear your thoughts. Leave a comment, reach out on Discord, or create a GitHub discussion.

Check out our release on 🚀 Product Hunt or our 💻 GitHub repository.

Until next time!

--

--

Carla
Appwrite

Product Designer @ Appwrite & former mobile developer