DataFlow — a new toy for creating internal tools

Huy
4 min readJan 20, 2023

--

At TablePlus, we have built many small utilities, such as revenue reports, refund tools, email tools… Those are small but it took effort, time, and money to develop and maintain to keep up with the tech trend and security bug fixes. We have tried to find low-code solutions, however, every time, we end up creating a new one from scratch.

It’s 2023 and why those low-code tools couldn’t help? Every solution has some pros and cons, let's see why we didn’t choose them:

1. They are big and focus on enterprises.

=> The price is a bit expensive. We’re not an enterprise, we’re a very small team, and we don’t use all the features.

2. They are all web apps, and if you’re big enough, they will offer you a private deployment.

=> It’s an internal tool, why do we expose it to the world? or rely on some else servers? We would like to deploy it on our server or run it on our devices only. We will not want to put our user data on anyone's servers. Actually, this is the biggest issue. If it is on some else server, it’s not a true internal tool.

There are some free open sources that give you the code, but we need to deploy it ourselves and maintain a public big code base. We would like to keep it simple and small.

3. They are complex products and require a learning curve.

=> This is the second pain point. Most of the low-code solutions are a tool with a bunch of configurations. And if you want to understand those configurations, you need to read their documents. If you are a developer, you will be familiar with coding, so why do we learn to config instead of coding? Surely, we can create a small tool faster than learning configurations. We think that those low-code tools are for none-developer who choose to learn config over coding.

So after all, we choose not to use any of the available low-code solutions but we start to think that we should build our own solution, we think that many people out there are suffering the same pain point.

Our initial thoughts:

1. It must be a free app to use.
2. It must be not-a-web-app because we don’t want to spin up a server for it, many users don’t want to build a server just for a simple task.
3. It must be simple to use but can be extended later. The idea is that we give the user a core app, and then everything is plugins, just like our favorite text editors: VSCode, Sublime Text…
4. We don’t want it to have many configurations like the other low-code tools.

The Challenge:

1 and 2 are easy, we have the experience to build a freemium desktop app from TablePlus. But the 3 and 4 are hard. The complexity isn't going anywhere. If you want a powerful tool, it could not be simple. If you want both, it’s unreal.

So we made a trade-off, we don’t want to target the whole market at the moment, so we start our app with a smaller market: developers — who are good at coding.

So we built DataFlow:

1. DataFlow is a Fremium Desktop App.
2. DataFlow has a simple UI, and it doesn’t overcomplicate with configurations.
3. It can be extended later with plugins and components. It will take time but we’re here, we’re listening.

So how do we solve the “configuration” problem? If DataFlow does not have “configurations”, how do we build apps with it? How do we solve real-world problems without giving the blocks — configurations?

Well, remember that we shift our focus to developers? The solution is coding.

Yup! you can use JavaScript in DataFlow to solve the “configurations” issue, we’re good at coding so it should not be a big deal. JavaScript is the most flexible language available at the moment and every developer at any-level can learn it easily. Coding in DataFlow is not like creating a new Javascript project, it’s simple. Let’s see an example below.

1. Create a very simple app that when we click the Button, changes the Label title.

First, we add a label and a button:

Create label and button

Then add a code snippet where we can write code that controls the label, in this case, it is:

first_label.label = "A new title";

Hit the build button and see how it goes:

With DataFlow, we can do more than that, we can share the project with other members:
- Can View: They can only see and use the app that has been published by you.
- Can Edit: They can help you to build apps with DataFlow.

This is our very first public beta so it will have so many bugs and lack of features, such as real-time collab and version control, but we’re here to improve it.

Our roadmap for the next few months:

  1. Realtime Collab.
  2. Version control.
  3. More components.
  4. Create and manage teams.

If you’re interested in DataFlow, you can download it here: https://dataflow.so and if you’re using it, we welcome all the feedback.

Submit feedback here: https://github.com/TablePlus/DataFlow-Issue-Tracker/issues
Email us directly: nick@tableplus.com

--

--