Hi We love zeppelin and the ease with which we can use it, however building applications on top of zeppelin poses a few issues as we are unable to leverage our UI skills as we have to stay within the boundaries of zeppelin.
We looked at helium, but we thought it still has the same problems, an alternate solution which has yielded us good benefits it to use zeppelin notebook and server as backend and write the UI outside zeppelin. We then use the paragraph and other apis to run the queries and show results in our custom UI. This allows the UI to incorporate styles, themes and visualizations which are more apt to the client needs and still use zeppelin for the actual data crunching. tldr version The steps that we follow are: 1. Build a custom UI 2. Code the actual processing logic in zeppelin and expose this as notebook, for each of the relevant paragraphs take the paragraph id 3. UI calls the paragraph and job api to submit queries and retrieve the results, the apis we mostly use are run the relevant code with /api/notebook/job/{notebookId}/{paragraphId} retrieve the results with /api/notebook/{notebookId}/paragraph/{paragraphId} and parse the result.msg object and display it in UI 4. We made some changes to get the paragraph id in the UI easier 5. We made some changes to return more than just status ok from job api, we return a id with which the job status and results can be tracked which is useful in our async responses. We can submit all these changes as a patch if the group feels it can be of value. Thanks Apurba