A while ago we asked folks to help us build a big list of wind energy R&D facilities. The result was a google map, which was really a bit underwhelming.
There’s a post about the technical details at Using plotly dash to build a wind energy R&D facilities explorer - Show & Tell - PY_WRAM.
One of the biggest challenges for startups working on software-as-a-service is setting up the technology stack, from databases to running analysis, to presenting results in a web page. That can be daunting, especially when an app is in its early stages and changing rapidly.
Plotly Dash shortens that development time by combining layout and analysis code in a single document. It’s intended for dashboards and is ideal for spinning something up to test ideas for a proof-of-concept or MVP. In the long term you might need other solutions if you need user management or want to split your analysis from your web front end, but that can come when you are doing the engineering for a version 1.
To give an idea of how easy this is, I developed this entire app on my desktop using Visual Studio Code. Starting with basically zero knowledge of python and outdated experience with Matlab, it took about 80 hours.
There was no need to learn about databases or dig in to any front end frameworks. Although Dash is a wrapper for React, all of the coding looks and feels like normal python, just using a special library - Dash.
One thing we learned developing this was that anything public-facing needs more than just the app. You need:
- publisher’s information
- a data protection policy
- a way for people to provide feedback. This was implemented using Microsoft Forms, but you could equally use Google Forms, Hubspot, or many other things
To do the first two we used Dash to create a multi-page app, including a landing page, the explorer, impressum, and data protection policy.
The whole of the enviConnect Labs site is the result. It’s built 100% from Dash.
Now that we have this website framework in place, we can just drop in new single-page apps whenever. I can see this being a really good way to develop and test MVPs quickly.
Oops. Please share your feedback here.