The Notebook is the place for all your needs
Zeppelin interpreter concept allows any language/data-processing-backend to be plugged into Zeppelin. Current languages included in the Zeppelin interpreter are: Scala(with Apache Spark), SparkSQL, Markdown and Shell.
Adding new language-backend is really simple. Learn how to write a zeppelin interpreter.
Zeppelin provides built-in Apache Spark integration. You don't need to build a separate module, plugin or library for it.
Zeppelin's Spark integration provides
Some basic charts are already included in Zeppelin. Visualizations are not limited to SparkSQL's query, any output from any language backend can be recognized and visualized.
Learn more about Zeppelin's Display system.
Zeppelin can dynamically create some input forms into your notebook.
Learn more about Dynamic Forms.
Notebook URL can be shared among collaborators. Zeppelin can then broadcast any changes in realtime, just like the collaboration in Google docs.
Zeppelin provides an URL to display the result only, that page does not include Zeppelin's menu and buttons. This way, you can easily embed it as an iframe inside of your website.