
Show HN: Kyso – an easy way to share Jupyter notebooks - eoinmurray92
Hi HN,<p>We&#x27;re the founders of<p><a href="https:&#x2F;&#x2F;kyso.io" rel="nofollow">https:&#x2F;&#x2F;kyso.io</a><p>We want to make it really easy to share data-science within teams, and 
we&#x27;ve started with Jupyter notebooks.<p>We render the notebooks really nicely, so you can embed interactive visualisations like Bokeh, and Plotly plots.<p>Another nice thing is we allow you to hide the code for non-technical readers, so you basically get a beautiful data blog.<p>Look at <a href="https:&#x2F;&#x2F;kyso.io&#x2F;laura&#x2F;" rel="nofollow">https:&#x2F;&#x2F;kyso.io&#x2F;laura&#x2F;</a> for some examples.<p>We really want to hear your feedback, let us know what you think!
======
haney
We use AirBnB's Knowledge Repo project[1][2] for things like this at my
company. I love the idea of making it easier to deploy things like this
though.

1\. [https://medium.com/airbnb-engineering/scaling-knowledge-
at-a...](https://medium.com/airbnb-engineering/scaling-knowledge-at-
airbnb-875d73eff091)

2\. [https://github.com/airbnb/knowledge-
repo](https://github.com/airbnb/knowledge-repo)

~~~
eoinmurray92
We actually used the Knowledge-repo at our previous startup, and we thought we
could improve the user experience, and hence
[https://kyso.io](https://kyso.io) \- but we haven't strayed to far from the
original idea of the knowlege-repo

------
jonahx
Could you elaborate a bit on what you offer that out-of-the-box Jupyter does
not?

From my admittedly limited experience with Jupyter, it is already an
interactive coding and visualization tool which can be exported to HTML.

Can you not include Plotly plots in vanilla Jupyter?

The kyso homepage says that you beautifully render the notebooks? Given that
they're already html, does that mean custom style sheets? Something more?

Or is the main value add just a wrapper over git to make versioning and
sharing easier?

Thanks.

~~~
eoinmurray92
We host Jupyter notebooks online! We don't in anyway replace Jupyter.

So normally when you publish a notebook online - you'd use Github or
[http://nbviewer.jupyter.org/](http://nbviewer.jupyter.org/)

Github doesn't allow the interactive graphs, and nbviewer wont actually host
the notebooks for you (you need to link from somewhere else).

Let you just type `kyso create "new-study"` and `kyso push "new version"` and
your notebook is live online

edit for spelling

~~~
jonahx
So this would be a simpler alternative to, say, running my own jupyter server
on a digitalocean box?

~~~
eoinmurray92
We currently host static renderings of the notebooks, for reading and sharing,
where you can pull them down to your local installation of Jupyter to extend
them.

On our roadmap is for Kyso to work like the Google drive integration, where
you can use a jupyter kernel ([https://github.com/jupyter/jupyter-
drive](https://github.com/jupyter/jupyter-drive)) hosted anyway but server the
notebooks from Kyso.

And we are also planning fully runnable notebooks too, we do aim to be the
easiest way to run your own jupyter server.

------
opportune
So what do you actually do? I work with Jupyter notebooks daily. I'm not
really sure what you are actually doing with them even after visiting both of
your links. Are you hosting deployments on the web? Changing how common
plotting tools are displayed?

Having the expandable/collapsible code is nifty for sure, but that's the main
feature I noticed.

If I can offer some perhaps unsolicited feedback, I'd like for you guys to
make it more clear (explitcly clear) what exactly you are offering. Your main
web page just looks like a sales pitch for jupyter notebooks in general.

~~~
eoinmurray92
Thanks for your feedback, currently we host static renderings of the
notebooks, so you can share them easily for other to read. And others can pull
them down locally and extend them.

We are planning the fully runnable Jupyter environment in the future.

------
drej
My favourite thing about Jupyter notebooks is that you can render them locally
to avoid the Jupyter hassle if you don't have it installed for some reason (or
if you don't want to run it).

Upon reading this, I decided to implement a renderer of Github-hosted files
(as their renderer is painfully slow and doesn't work on phones) to further
simplify notebook distribution. I haven't looked into Bokeh and other
javascripty extensions, but it might be solvable as well. So thanks for the
inspiration!

[https://news.ycombinator.com/item?id=12243562](https://news.ycombinator.com/item?id=12243562)

~~~
echion
This (nbviewer.js)[1] is really amazingly quick and useful as a notebook
viewer.

1\.
[https://github.com/kokes/nbviewer.js](https://github.com/kokes/nbviewer.js)

------
lukejduncan
I've always wanted a way to do collaborative editing ala google docs in a
Jupyter notebook. Does anyone know if there are existing tools that do similar
things?

~~~
carreau
Jupyter/IPython dev here. 1) We are always supper happy to see commercial
offers that integrate Jupyter – I see the HQ of Kyso is in SF, feel free to
come see the Berkeley team. We're also be happy to come by SF to discuss ! 2)
RT collaboration is on its way on main Jupyter (via JupyterLab) the beta
should be announced in a couple of weeks maybe before end of month. It will be
using Google Drive (by default, but plug-able). Not only on notebooks, but all
text documents – you can get it now if you install master. 3) I would also
look at CoCalc (ex SageMathCloud) that already have real-time collaboration
with full history.

~~~
williamstein
As mentioned, we have had collaborative editing with full history for Jupyter
notebooks since 2014 in [https://cocalc.com](https://cocalc.com), which is
open source by the way. We've written and rewritten this functionality 3 times
now, culminating most recently with a complete front and backend rewrite of
Jupyter from scratch for CoCalc. See
[http://blog.sagemath.com/jupyter/2017/05/05/jupyter-
rewrite-...](http://blog.sagemath.com/jupyter/2017/05/05/jupyter-rewrite-for-
smc.html) for more details. We also still support collaborative editing using
Classical Jupyter.

~~~
j_s
Nice! How much of this made it back into Jupyter proper? I'm always interested
in the "rubber meets the road" aspects of commercialized open source
development.

Your project looks perfect for helping people learn how to code.

~~~
williamstein
I'm in close communication with many Jupyter developers, got a lot of help and
feedback from them, and I hope I influence their direction in some cases. We
view CoCalc Jupyter as another Jupyter client in the Jupyter ecosystem (much
like nteract, Google Collaboratory, etc.); the implementation framework of
CoCalc Jupyter is React.js, so the main code sharing is with Nteract, rather
than classical Jupyter. Regarding commercialized open source, Nteract is
another Jupyter client who development is funded by a company (currently
mainly Netflix).

------
sandGorgon
I would pay a LOT if I can upload a notebook (jupyter or Zeppelin) and have it
available as a true multi-user dashboard (like a form with input and output)

~~~
iamwil
Why would you pay a lot for it? What problem does it solve for you?

~~~
sandGorgon
I'll reply to both you and OP here. I have an open bug on this as well. The
closest thing I have found is [http://blog.ibmjstart.net/2016/01/28/jupyter-
notebooks-as-re...](http://blog.ibmjstart.net/2016/01/28/jupyter-notebooks-as-
restful-microservices/)

Jupiter is brilliant to prototype stuff - anything from metric dashboards to
ML models. The problem is how do you take this live ?

So you have production engineers transforming this code into a microservice
and then writing an exact duplicate dashboard in reactjs or something. Why ?
Because jupyter spawns kernel which is directly related to state of execution
of the program...So if I'm logged into the dashBoard, nobody else can.

Instead, if you could nbconvert the notebook into flask code, I could have a
running dashboard in a piece of flask code that I can immediately put on my
server.

I will pay for this - both because it is very useful, and also as a way for me
to fund something cool.

As a business model, it is damn cool - this is true heroku for data
scientists.

EDIT: incidentally I have been told by many people to switch to Zeppelin.
Apparently, it works nicer at building dashboard..And More importantly, it is
seamless integrated with the spark ecosystem (including cluster support) that
makes scaling very easy. GCP Dataproc comes with recipes to launch Zeppelin on
the server.

~~~
eoinmurray92
We are working on this, 1 click deploys of data-science apps - do you have a
way for me to contact you when we launch this (I'm eoin at kyso.io)

~~~
sandGorgon
Email captcha link in my profile.

------
jparmer
You guys should consider nteract's commutable as a frontend:
[https://github.com/nteract/commutable](https://github.com/nteract/commutable)

~~~
lambdaops
Probably want the packages in here --
[https://github.com/nteract/nteract/tree/master/packages](https://github.com/nteract/nteract/tree/master/packages)

Roughly speaking, this is just like the notebook-preview component with
different styling and some additional UI enhancements (cell hide toggling).

------
jparmer
You can also toggle code cells of Jupyter notebooks in Plotly:
[https://plot.ly/~empet/14371](https://plot.ly/~empet/14371)

~~~
gnestor
Collapsible input/outputs was just merged into JupyterLab today!

------
perryprog
I just got this error: Error! { "line": 7, "column": 2607, "sourceURL":
"[https://kyso.io/_next/cfa0fec92f8264fb4f4d21558810e9ef/app.j...](https://kyso.io/_next/cfa0fec92f8264fb4f4d21558810e9ef/app.js")
}

This looks really good though! Good work!

~~~
eoinmurray92
Thanks for reporting that - looking into it.

------
partycoder
Technically speaking the prefix is Show HN. So it appears in the "show"
section. Launch HN is not a supported prefix.

------
ianhowson
Shameless plug: I built a free version of this (for R) a few months ago:

[https://rnotebook.io](https://rnotebook.io)

Adoption hasn't been great, so it's probably going to stay free for a while.
Enjoy!

------
eoinmurray92
Eoin the co-founder of Kyso here! Happy to answer any questions...

my email is eoin [at] kyso.io

------
Plough_Jogger
Is this just a UI in front of Jupyter Hub?
[https://github.com/jupyterhub/jupyterhub](https://github.com/jupyterhub/jupyterhub)

~~~
eoinmurray92
Currently we allow you to share notebooks statically, i.e. they don't run.

We will be supporting runnable dashboards and notebooks soon.

------
eoinmurray92
Just got some feedback there that the command line app is only working for
node.js v8.0 and above!

Will be releasing a node v6.0 compatible version in the next 2 days, and an
node independent version very soon!!

