Feature proposal: direct Nextcloud folder access via WebDAV · Issue #280 · ThisIs-Developer/Markdown-Viewer · GitHub
Skip to content

Feature proposal: direct Nextcloud folder access via WebDAV #280

Open

Description

@Kechos23

Hi! Before starting implementation, I'd like to ask whether direct access to Markdown folders in Nextcloud would fit the project's direction. Nextcloud is my main use case, and its integration is the part I'd be keen to work on first.

Use case

I keep Markdown files in Nextcloud and would like to browse, open, edit, and save them directly in Markdown Viewer, without installing the Nextcloud desktop client or maintaining a synchronized local copy of the folders.

Each user would connect to their own server and account, then select folders to display in the Explorer/sidebar. Files would be fetched when opened; edited documents would retain local recovery drafts.

Proposed initial scope

  • Connect to a Nextcloud account, preferably through its browser-based Login Flow with an app-specific credential.
  • Browse selected remote folders and open Markdown files in the existing editor/tabs.
  • Explicitly save changes back to the remote original, using server-supported conditional writes to prevent overwriting a competing edit.
  • Preserve drafts during connection failures or conflicts, and distinguish local draft persistence from confirmed remote saving.

Full folder mirroring, background synchronization, remote delete/move operations, and automatic conflict merging would be outside the initial scope. This would provide remote file access rather than synchronize the application's entire workspace.

Architecture and platform scope

I'd focus the initial contribution on Nextcloud browsing and editing. Document handling, draft recovery, and conflict logic could be shared between platforms, while authentication, credential storage, and network transport use platform-specific adapters.

If you prefer a general "Remote connections" section or a reusable source interface, I'd be happy to discuss how the Nextcloud integration should fit into it. Support for generic WebDAV or other server types would remain a possible future extension, outside the contribution I'm proposing here.

I'd like to support both desktop and web, but browser CORS requirements mean direct access to arbitrary Nextcloud servers cannot be assumed. Would a desktop-first proof-of-concept be acceptable, with web support evaluated separately? I would not assume a hosted proxy or require one without discussing that tradeoff first.

Keeping the shared logic independent of Neutralino could also make it reusable in a future Android client, but Android would not be part of this proposal's initial implementation.

Questions

  1. Would this feature be of interest for upstream?
  2. For a Nextcloud-focused contribution, would you prefer a dedicated sidebar section or integration through a reusable remote-source interface?
  3. What initial platform scope and integration approach would you prefer?

I'm keen to implement the Nextcloud integration and contribute it in small, focused PRs. If this aligns with your plans, I'd start with a Nextcloud connection/list/read proof-of-concept, followed by conditional saving and recovery/conflict tests. I'd coordinate the approach with you before implementation and keep the first contribution focused on Nextcloud.

Activity

  1. ThisIs-Developer commented on Oct 11, 2026

    @ThisIs-Developer
    Owner

    Hi @Kechos23,

    First of all, thank you for the detailed proposal! I really like the idea, and I think this could become a valuable addition to Markdown Viewer.

    However, in my opinion, if we're going to introduce cloud storage synchronization or remote access, I'd like us to implement it in a more complete and extensible way rather than limiting it to Nextcloud alone.

    My vision is to introduce a Cloud Sync / Remote Connections feature where users can connect their preferred storage providers, browse their folders, open Markdown files, edit them, and save changes directly back to their cloud storage.

    Ideally, I'd like us to support the following platforms:

    • Google Drive
    • Microsoft OneDrive
    • Dropbox
    • GitHub
    • Nextcloud
    • GitLab
    • Bitbucket
    • Apple iCloud Drive (if technically feasible)
    • Generic WebDAV (for other compatible storage providers)

    Regarding the architecture and implementation, I'd like to ask for a little time to research the available approaches and figure out how we can build this properly. Since I don't want the implementation to be limited to Nextcloud, I think we should plan a reusable architecture that allows us to integrate multiple storage providers over time.

    I'd also appreciate it if you could explore the possible approaches from your side and share your thoughts.

    And there's one more thing I wanted to mention. 😅

    I'm not even joking, but we currently have quite a few active PRs and ongoing improvements! Someone is working on the visual library customization feature, you also have three open PRs, and there are several smaller bugs and issues being reported that need attention.

    Some of these PRs introduce really great ideas as well, and I'd like to focus on reviewing, testing, fixing, and merging the existing work before we start another major feature.

    So, I'd prefer that we don't start development or open a PR for this feature just yet, even a draft PR. Let's first complete the ongoing work, and in the meantime, we can research the architecture, discuss the implementation, and decide how the different cloud providers should fit into Markdown Viewer.

    I really appreciate your enthusiasm and willingness to contribute. I definitely don't want to rush this feature, because I believe it has the potential to become something really useful if we design it properly from the beginning.

    This is a great idea, and I'm absolutely interested in moving forward with it. We just need to take it step by step.

    Thanks again for bringing this up and for your continued contributions. Let's make it happen, man! 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

✨ enhancementNew feature, improvement, or usability enhancement.

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions