How We Made Connecting Data to Widgets Much Easier
Published: 2021-09-14 06:55:03

What do we want our users to do on Appsmith? The obvious answer is that we want them to build fantastic internal apps for their organizations super fast. But what we're doing solves a more significant and perhaps intangible problem: avoiding repetitive and tedious grunt work. Developers don't want to do this, and we want to enable them to get to solutions faster. For this, Appsmith needs to be smarter and better too. The first step is to have a smooth onboarding experience — it's good for our users and great for us! 

However, we noticed that users couldn't easily find critical elements essential to understanding how Appsmith works. 

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1629100566373/wA6Cb5FKK.png)

Our data connectors were hidden, and there were no obvious means of accessing them. There were a few more glaring pain points; for example, we felt that our widgets with pre-filled data, discouraged users from playing around with the platform. And even if our users were landing on the queries section, the flow was confusing and switching between data queries and widgets was non-intuitive. The product was not hitting the intended direction; to address all this confusion and more, we changed the navigation experience. 

Simply put, our overarching goal with this update was to get people to connect their data to the UI. 

Widget ➡️ Datasources ➡️ Querying Data ➡️ Connecting Widget
With this flow in mind, we made several changes to the navigation experience. 

Users can now:

* Connect data sources faster 
* Find the right widget for available data 
* See relationships between UI and Data clearly

In this blog, we will talk about Appsmith's new navigation experience and how our design and platform pods went about the production process. Hopefully, you'll also get an inside look into the collaborative engineering and design practices here at Appsmith! 

### Merging APIs and DB Queries under Datasources 

When a user is in an exploratory stage, what do they do first? Build UI or connect data sources? For us, it was a little bit of a chicken and an egg situation. We wanted to limit the fields to not overwhelm users with too many options and manage the flow into smaller edible nuggets. 

Having APIs as a separate entity was counterintuitive. Merging it under data sources makes it easier for discovery and helps the user understand that all data comes from a data source — whether it's an API or a database query. 

Along with this, we've also added subtle nudges and prompts such as this: 


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1629100718789/ByaMwcp8T.png)

This reinforces the importance of connecting data sources to get apps working. ‍

### The Right Widget for Your Data ‍

If you're confused about finding the best way to represent available data (a chart or a table?), the Appsmith platform can now predict the best widget based on your data. 

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1629100761726/hCZmzuMmb.png)

This feature helps users narrow down options based on the type of data they have, speeding up the process of building an app. Earlier, users had to add the data source, write the query, go back to the canvas, scout for the right widget, (deep breath), drop it, and then bind it. With the new and improved flow, users can add data sources, write queries, select recommended widgets. Appsmith does everything else!‍

### Clarity on Entity Relationships‍

Once you're inside a widget, it's essential to see how your data is linked to each other. We realized that when there are multiple data sources and queries on your application, sometimes it might be hard to navigate between data sources. So, we’ve added a way to be able to see entity relationships more clearly. With the upgraded new navigation experience, all the defined queries are listed on the widgets under incoming entities; you can directly choose (what) without writing JS bindings. When the widget performs any actions, for example, when a button is clicked, or a row is selected, these queries can now be seen under the outgoing entities section. 

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1629100799468/zAkfvVmn0.png)

### Make things more obvious 

If there's one thing we've come to believe in after spending almost two months on this update, it's that keeping things simple tends to go a long way. This reflects even in the copy

Bind Data — Connect Data 

APIs and DB Queries — Datasources

We introduced slash commands as a quicker and simpler way to connect widgets to a data source. Now you can trigger commands by typing "/" and use it anywhere you're writing Javascript (within moustache bindings) on Appsmith. 

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1629100836518/QlDEGDgDr.png)

Slash commands also give a heads up for developers to start from somewhere. They become the way to initiate writing custom code and our auto-complete feature speeds up the process! 

Our efforts with this new navigation experience were to make things simple and enable our users to find and understand features easily. As an open-source organization, we will always be a work in progress powered by our incredible community. We will strive to keep improving Appsmith!

‍If this new navigation experience helped you do let us know! As always, we would love to learn more about you and what you're building using Appsmith; please feel free to email me (vishnupriya@appsmith.com). 


<hr>


 [*Become a Betasmith*](http://notion.so/Betasmith-Join-the-Appsmith-Beta-Community-5c288dfd57bd4c4781c3bf02ddf9aa8a)  
Have a say in shaping Appsmith's future!‍

 [*Join our community‍*](https://community.appsmith.com/) 
Contribute or generally hang out with us!‍

 [*Sign up for Events‍*](https://lu.ma/appsmith) 
Stay up to date on new features, live demos, etc.