dendron
dendron copied to clipboard
RFC: Browser based Dendron
Context
Dendron is amazing, but the time-to-first-joy is could be shorter. One way we might achieve a faster time-to-first-joy is to reduce the installation pre-requisites. I have successfully used code-server to present dendron in a browser window. This is self-hosted from a docker container, on a server in my closet. I've developed ansible playbooks to automate the setup of code server behind traefik along with two factor authentication from Authelia.
Proposal
Dendron will establish a backend infrastructure that provides account holders with secure access to a personal code-server instance with dendron, dendron-cli and other approved extensions.
Ideas, Notes and less formed thoughts.
- I propose we establish a subdomain per account. ie: https://codefriar.dendron.so
- Code-server isn't the only option. Theia could work. higher risk of unknown unknowns when it comes to compatibility.
- GitHub.com/vivumlab/vivumlab is a project of mine that has the skeletal start to automated deployment of code server, etc.
- This enables future enhancements
- a native electron based 'app'
- an iPadOS app
- an iPhone app
- an Android tablet? app
- If I had my way, the web-instance would be git-locked to a cloud-available git repo.
- It should be provider agnostic: github/gitlab/gittea instance in my closet etc.
- Ideally, the workspace and it's vaults and any user-installed themes / plugins are encompassed in the repo.
First of all yes this would be something awesome, I could see this in different ways.
Ways to go about it
- A self-hosted version for the user to host themselves, with community support.
- A managed version where Dendron INC handles the infrastructure for you. With multiple tiers:
- An individual tier: for users that don't want to self-host.
- A professional tier: For users that have special requirements.
- A teams tier: For Teams of users, with ACL.
- An enterprise tier: For Enterprises, Companys, University etc...
- Maybe by working together with Coder the creators of code-server
Additional Thoughts
a native electron based 'app'
I would advise against this and instead, go with tauri
If I had my way, the web-instance would be git-locked to a cloud-available git repo.
Please explain what you mean by git-locked.
Alternatives
One alternative could be for dendron to provide a backend, with the option for different Storage Adapters to store Notes / Schemas / Assets / Configs / etc.
With endpoints to register Workspaces / Vaults and modify their config.
Overall Providing an OpenAPI Spec around the backend to provide ways for other things to interact with dendron. Be that Custom Frontends for viewing, editing, auditing, managing, etc.
@flammehawk - sorry for the delay in response.
Regarding 'ways to go about it'. A self-hosted tier is effectively already available, if not released. I have a docker image that hosts dendron in a code-server container with the cli. It's not yet released because the overarching goal of that docker image is not yet realized - I'm waiting for the hopefully soon replacement of the Markdown Preview Enhanced. For performance reasons MPE uses service workers, and those are contrary to what I need.
However, a hosted, subscription (professional tier, as you call it) would remove the need for waiting for MPE to be replaced. (hit me up on discord if you want the nitty-gritty tech details).
Once a professional/ hosted tier is established, it's a logical bolt-on/monetization point.
Additional thoughts
I tried not to be explicit in implementation, but failed with the reference to electron. I think I'd like to say that having a hosted tier, enables you to have a desktop "app", based in electron or tauri or ... insert-thing-not-yet-released.
Git-locked: While it's entirely possible to build out an api for notes, etc that a hosted version could utilize for storage, I'd prefer to use git as the storage plane. Making a hosted dendron use github/gitlab/gitea/whatever means the data is in my control. Adoption of gitDoc or whatever makes sure things are in sync.
Great idea @codefriar - I think this calls for an RFC. Would you like to work together on this (I'll be point on the maintainer side)? Will put up an initial draft PR for the RFC and we can take it from there. I'll sidebar with you on discord on how best to pull this together. I think this can definitely be something we do to lower the "time to first joy" of Dendron.
One of the most powerful components of dendron is the ability to tag/categorize a note which simultaneously creates a meaningful file name (which is the same as the tagging/organizing scheme).
I know iOS especially makes accessing files within notes apps a little difficult. Is this a limitation of iOS or a preferred choice by coders or apps to abstract away the actual files within iCloud Drive, etc?
Is this what you mean @codefriar about attaching to git so this functionality within dendron can be preserved in the best way?
@codefriar i have taken a look at https://github.com/VivumLab/VivumLab and also https://github.com/cdr/code-server and microsoft has also open sourced their implementation of vscode remote implementation https://github.com/gitpod-io/openvscode-server
so i was wondering for a newbie to the area of remote vscode usage. what's the shortest path to getting something working in the case of dendron as you described?
Many interesting things have happened with VSCode since this issue opened. I think this is related due to the advancements around vscode.dev and github.dev
- #1777
Hi all This seems very intersting. Anyone made some progress with this? I'd also be interested to see how publishing can come into play with such an all-in-one setup.
I managed to run a somewhat-working Dendron instance on the web, using the lscr.io/linuxserver/code-server:latest image.
It works, but there are multiple pains relating to the vscode.workspace.fs API.