# Offline Editor

**URL:** <https://talk.observablehq.com/t/offline-editor/4905>\
**Category:** Feedback\
**Created:** [April 13, 2021, 11:45am UTC](https://talk.observablehq.com/t/offline-editor/4905 "2021-04-13T11:45:55Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![yunfengsay](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/yunfengsay/32/4808_2.png) [@yunfengsay](https://talk.observablehq.com/u/yunfengsay)\
**Post date:** [April 13, 2021, 11:45am UTC](https://talk.observablehq.com/t/offline-editor/4905/1 "2021-04-13T11:45:55Z")

</div>

Hello  
I want to deploy a Observable Editor on my local server, is there a open source code which can finish this?

---

<div class="post-metadata">

**Author:** ![mcmcclur](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/mcmcclur/32/2364_2.png) [@mcmcclur](https://talk.observablehq.com/u/mcmcclur)\
**Post date:** [April 13, 2021, 2:12pm UTC](https://talk.observablehq.com/t/offline-editor/4905/2 "2021-04-13T14:12:14Z")

</div>

I think the answer is _no_, mainly because the strong emphasis on community building (which I find myself to be very grateful for). The most official response to this question I know of is here:

> [@Noob: Can you run your own Observable server](https://talk.observablehq.com/t/noob-can-you-run-your-own-observable-server/757/2):
>
> Hi Aaron! Sure - something similar [was asked in this thread](https://talk.observablehq.com/t/private-installations/501) - the answer’s, well: we’re soon going to open source the runtime for Observable, making it possible to export a notebook and include it on another website/webpage. But that won’t include the editable notebook interface or the rest of [observablehq.com](http://observablehq.com) - unlike Jupyter, we’re really aiming to create a community and cross-pollination of concepts and code rather than individual installations. We might eventually launch something that enab…

---

<div class="post-metadata">

**Author:** ![floatingpurr](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/floatingpurr/32/5572_2.png) [@floatingpurr](https://talk.observablehq.com/u/floatingpurr)\
**Post date:** [October 3, 2022, 1:36pm UTC](https://talk.observablehq.com/t/offline-editor/4905/3 "2022-10-03T13:36:54Z")

</div>

Any updates about it? Is there a way to work with an Observable notebook offline and to import back modifications into the Observable cloud?

---

<div class="post-metadata">

**Author:** ![Cobus](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/cobus/32/9670_2.png) [@Cobus](https://talk.observablehq.com/u/Cobus)\
**Post date:** [October 3, 2022, 2:23pm UTC](https://talk.observablehq.com/t/offline-editor/4905/4 "2022-10-03T14:23:41Z")

</div>

Thanks for checking in. The thread Aaron mentioned talks about number of offline editors. I assume you already looked at those. There are no plans yet to support a round-trip offline editing experience.

---

<div class="post-metadata">

**Author:** ![floatingpurr](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/floatingpurr/32/5572_2.png) [@floatingpurr](https://talk.observablehq.com/u/floatingpurr)\
**Post date:** [October 3, 2022, 3:00pm UTC](https://talk.observablehq.com/t/offline-editor/4905/5 "2022-10-03T15:00:59Z")

</div>

Hi @Cobus! Yes, I’ve already checked out some of the pointers mentioned in the thread. I haven’t explored them in depth, but it looks like there isn’t yet a frictionless way to work with notebooks in an “Observable” fashion (i.e., Web interface, cells, reactiveness, … ). It’d great using a full-fledged local version of Observable to export/import notebooks from observablehq. I understand that this is something that doesn’t play nicely with the idea of community, but sometimes you simply do not have a good Internet connection, or you just need to keep your code locally.

As always, thanks for your reply!

---

<div class="post-metadata">

**Author:** ![mootari](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/mootari/32/581_2.png) [@mootari](https://talk.observablehq.com/u/mootari)\
**Post date:** [October 4, 2022, 6:48am UTC](https://talk.observablehq.com/t/offline-editor/4905/6 "2022-10-04T06:48:04Z")

</div>

@floatingpurr Observable is pretty smart about synchronising any edits you made while working offline, once a connection has been reestablished. This even includes file attachments. If you anticipate that you’ll go offline, it should suffice to just open a new notebook and have it sync when you’re back online.

However, many of the tools available through Observable’s Standard Library are loaded lazily and may not be available if your browser hasn’t cached them. The same applies to any notebooks you might import.

Can you describe what kind of work you want to do offline?

---

<div class="post-metadata">

**Author:** ![floatingpurr](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/floatingpurr/32/5572_2.png) [@floatingpurr](https://talk.observablehq.com/u/floatingpurr)\
**Post date:** [October 4, 2022, 9:17am UTC](https://talk.observablehq.com/t/offline-editor/4905/7 "2022-10-04T09:17:23Z")

</div>

A couple of days ago, I gave a workshop on Observable. I was asked if Observable can work also offline, like Jupyter. I like to use observablehq and, TBH, I’ve never thought about an offline version. But probably some people are interested in using an observablehq-like platform offline.

I guess that the rationale of this need can be:

1. working with offline Observable _sporadically_, importing and exporting notebooks back to observablehq. E.g., while commuting without an Internet connection;
2. working with offline Observable _programmatically_, when users do not want (or can’t) save their work on observablehq.

> However, many of the tools available through Observable’s Standard Library are loaded lazily and may not be available if your browser hasn’t cached them.

Yep. Pre-loading a notebook is the first thing I tried, but you can easily run into the problem you mentioned. Moreover, the risk of loosing your notebook seems too high to me.

---

<div class="post-metadata">

**Author:** ![mootari](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/mootari/32/581_2.png) [@mootari](https://talk.observablehq.com/u/mootari)\
**Post date:** [October 4, 2022, 10:23am UTC](https://talk.observablehq.com/t/offline-editor/4905/8 "2022-10-04T10:23:49Z")

</div>

> [@floatingpurr](#):
>
> Yep. Pre-loading a notebook is the first thing I tried, but you can easily run into the problem you mentioned.

You could probably create a notebook that loads all libraries explicitely, to prime your caches. However, I don’t see how a completely offline workflow is supposed to play out, since it would have to serve every library you may ever need locally. Not to mention that remote notebook imports would still be inaccessible.

> [@floatingpurr](#):
>
> working with offline Observable _programmatically_, when users do not want (or can’t) save their work on observablehq.

You can already do that through 3rd party solutions like @asg017’s [dataflow](https://observablehq.com/@asg017/introducing-dataflow).

---

<div class="post-metadata">

**Author:** ![floatingpurr](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/floatingpurr/32/5572_2.png) [@floatingpurr](https://talk.observablehq.com/u/floatingpurr)\
**Post date:** [October 4, 2022, 12:55pm UTC](https://talk.observablehq.com/t/offline-editor/4905/9 "2022-10-04T12:55:28Z")

</div>

Agree. As you pointed out, case 2 can be completely covered by integrating the runtime into a custom project. You’ll probably rely on a completely different UI and workflow (e.g., non-web-based). But I guess that it’s not a big deal for the users interested in this flavor.

Case 1 looks way more complicated than case 2 because of the integration with observablehq and due to the issues you mentioned. In a hypothetical case 2, you might want to save an observablehq’s notebook to a file, modify it off line, and load it back to observablehq. I understand that the offline editing would come with some limitations and can’t be feasible for all notebooks. But maybe even just working offline with the standard library (+ import / export) can satisfy most of the needs of case 2.
