What is the Necessary Tech Stack for Developing Kibana Plugins?

I've been tasked with developing a basic plugin for Kibana as of POC. I don't have much front-end development experience, so I've been reading through the documentation (which is great btw), but I'm still a little unclear of the exact tech stack I need to know to be able to develop a custom plugin/visualization.

The plugin resources guide says you need node for generating plugin templates. It also references the EUI Framework for developing visualisations, which appear to written in ReactJS. The contributing guide also notes needing to use yarn as a package manager (why not npm if using node?

All the examples I've found use JavaScript as the primary programming language, however I've noticed in the StyleGuide.md page, that it says everything should now be written in TypeScript. Is this correct? If so how does that impact developing using a framework such as React?

I've found Tim Roes blog on writing kibana plugins, however it is for Kibana 5 and is over 3 years old. Is this still a good reference to use?

I've also found an example of a template plugin, are these still good resources to use, or is it needed at all since you now have the plugin generator?

From reading all these, it appears the tech stack I need to research and learn in order to develop a simple kibana plugin is:

  • Node
  • JavaScript (and/or TypeScript?)
  • React

Is this correct? Or are the other technologies I'm missing? I'm particularly interested about the JavaScript vs TypeScript part, as every example I can find uses JavaScript, and the only reference to using TypeScript is hidden away in a style guide.

EDIT: I should also note I'll be developing this in Kibana 6.5.4 (if that makes a difference)

2 Likes

Hi, you are correct. A few things to note:

  • yarn is just a wrapper around npm for more optimized package management
  • Kibana will eventually all be in TypeScript, currently it is a mix of TypeScript and JavaScript
  • TypeScript compiles down to JavaScript. As a plugin author right now, it may be easier to stick with JS until more of Kibana is in TS because the Kibana dependencies of your plugin will likely be missing typings.
  • It doesn't matter if you use JS or TS from a React standpoint. You can find resources of React apps built in JS and TS.
  • Tim Roes' blog is still largely applicable :slight_smile:
2 Likes

Thank you for the clarification, it's a great help :smile:

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.