grafana / scenes

Build Grafana dashboards directly in your Grafana app plugins.
https://grafana.com/developers/scenes
Apache License 2.0
133 stars 20 forks source link

Suggestion: Improving documentation for Scenes #871

Open NaelDj opened 1 month ago

NaelDj commented 1 month ago

Hello!

While developing a Scenes App with Grafana Scenes I struggled a lot. Initializing the whole project was no problem, since that is documented well. The problem started when I had to implement features that were more involved.

I found out for me the two main reasons why it is far harder to develop with this instead of for example React are:

  1. Scenes is pretty new, so on internet other developers haven't asked that much yet. This also means LLMs like Copilot also can't really help with this.
  2. Lack of documentation. Here are some examples: -- Creating a new QueryVariable using datasource MSSQL instead of prometheus as in the documentation on https://grafana.com/developers/scenes/variables. Like on that page, I also used a nested query, but after a while I found out it only worked after deleting the nested query. -- Using SceneByVariableRepeater: nowhere in the documentation on https://grafana.com/developers/scenes/ this was mentioned. I found out that this existed by looking through the issues on Github. -- Using time macros: Same as SceneByVariableRepeater, I found out this existed by looking through Github. -- In general when I want to use any class, I have to go into the code and try to make sense of how it is made and would work. For example, what other class does it extend, how would the class be used.

During my time in university when using documentation for well-known frameworks, they have good documentation where they have a description per class or interface, which methods they have, and which fields those have if applicable. An example would be: https://docs.oracle.com/en%2Fjava%2Fjavase%2F11%2Fdocs%2Fapi%2F%2F/java.base/java/util/Queue.html. This makes it so much easier to develop it, since we as developers then know what methods and fields there exists all in one place. So would it be an idea for in the future to improve documentation with all classes, interfaces, methods, and fields?

But I like the demos in https://github.com/grafana/scenes/tree/main/packages/scenes-app/src/demos, so please keep up the good work here!

Thanks in advance.