[GH-ISSUE #647] Desktop App #178

Closed
opened 2026-02-26 18:45:44 +03:00 by kerem · 4 comments
Owner

Originally created by @kareemmahlees on GitHub (Nov 11, 2023).
Original GitHub issue: https://github.com/documenso/documenso/issues/647

Feature Description

Having a Desktop application version of Documenso with the free tier storing user-signed documents locally and the paid tier allowing for storage in the cloud.

Use Case

No response

Proposed Solution

We could use Tauri as we can transfer the majority of the frontend unchanged and only modify the backend part to work in Rust.

Alternatives (optional)

No response

Additional Context

I know this is a big feature and probably there are more important issues to be solved, but I would love to be one of the people working on this to come to light 🙂

Please check the boxes that apply to this feature request.

  • I have searched the existing feature requests to make sure this is not a duplicate.
  • I have provided a detailed description of the requested feature.
  • I have explained the use case or scenario for this feature.
  • I have included any relevant technical details or design suggestions.
  • I understand that this is a suggestion and that there is no guarantee of implementation.
Originally created by @kareemmahlees on GitHub (Nov 11, 2023). Original GitHub issue: https://github.com/documenso/documenso/issues/647 ### Feature Description Having a Desktop application version of Documenso with the free tier storing user-signed documents locally and the paid tier allowing for storage in the cloud. ### Use Case _No response_ ### Proposed Solution We could use [Tauri](https://github.com/tauri-apps/tauri) as we can transfer the majority of the frontend unchanged and only modify the backend part to work in Rust. ### Alternatives (optional) _No response_ ### Additional Context I know this is a big feature and probably there are more important issues to be solved, but I would love to be one of the people working on this to come to light 🙂 ### Please check the boxes that apply to this feature request. - [X] I have searched the existing feature requests to make sure this is not a duplicate. - [X] I have provided a detailed description of the requested feature. - [X] I have explained the use case or scenario for this feature. - [X] I have included any relevant technical details or design suggestions. - [X] I understand that this is a suggestion and that there is no guarantee of implementation.
kerem 2026-02-26 18:45:44 +03:00
  • closed this issue
  • added the
    community
    label
Author
Owner

@catalinpit commented on GitHub (Nov 17, 2023):

Personally, that sounds super interesting. However, I don't know what would be the priority of such a task. However, if you want to give it a go, you're free to do it. :-)

Let's see what other team members say about the priority.

<!-- gh-comment-id:1816240870 --> @catalinpit commented on GitHub (Nov 17, 2023): Personally, that sounds super interesting. However, I don't know what would be the priority of such a task. However, if you want to give it a go, you're free to do it. :-) Let's see what other team members say about the priority.
Author
Owner

@Mythie commented on GitHub (Nov 17, 2023):

Gday, this one popped back into my radar earlier today and it seems Catalin had the same kinda moment!

As you mentioned in the issue it’s not something we’re looking at in the near future but we are open to ideation and exploration for when we do tackle it. If there’s a compelling case to be made for it not being a maintenance burden it may also be something we consider in the nearer term 💪🏻

<!-- gh-comment-id:1816244683 --> @Mythie commented on GitHub (Nov 17, 2023): Gday, this one popped back into my radar earlier today and it seems Catalin had the same kinda moment! As you mentioned in the issue it’s not something we’re looking at in the near future but we are open to ideation and exploration for when we do tackle it. If there’s a compelling case to be made for it not being a maintenance burden it may also be something we consider in the nearer term 💪🏻
Author
Owner

@catalinpit commented on GitHub (Dec 15, 2023):

Closed due to no activity & low priority. We can revisit it in the future.

<!-- gh-comment-id:1857832911 --> @catalinpit commented on GitHub (Dec 15, 2023): Closed due to no activity & low priority. We can revisit it in the future.
Author
Owner

@kareemmahlees commented on GitHub (Jan 16, 2024):

Yoo! @Mythie @catalinpit

Screenshot 2024-01-13 153018

Though, while I was tackling this I found some major limitations to take into consideration.

In order for NextJs to be bundled with Tauri to produce an executable ( .exe file ), we need to export NextJs, i.e set output: 'export' because Tauri only works with static files.
This introduces a lot of things mentioned here, one of the major things is we can't use dynamic routes on desktop.

There is a workaround though, we can bundle the NextJs application using something like ncc to produce an executable binary and then include the binary with the Tauri application as a sidecar and I think this is the way GuiJs does it.
I didn't try this approach tbh but I wanted to know your opinion first!

<!-- gh-comment-id:1893915558 --> @kareemmahlees commented on GitHub (Jan 16, 2024): Yoo! @Mythie @catalinpit <img width="672" alt="Screenshot 2024-01-13 153018" src="https://github.com/documenso/documenso/assets/89863279/8956e5e1-bdcd-48f6-86d7-8d9abc9cf063"> Though, while I was tackling this I found some major limitations to take into consideration. In order for NextJs to be bundled with Tauri to produce an executable ( .exe file ), we need to export NextJs, i.e set ` output: 'export'` because Tauri only works with static files. This introduces a lot of things mentioned [here](https://nextjs.org/docs/pages/building-your-application/deploying/static-exports#unsupported-features), one of the major things is we can't use dynamic routes on desktop. There is a workaround though, we can bundle the NextJs application using something like [ncc](https://github.com/vercel/ncc) to produce an executable binary and then include the binary with the Tauri application as a [sidecar](https://tauri.app/v1/guides/building/sidecar/) and I think this is the way [GuiJs](https://github.com/Akryum/guijs) does it. I didn't try this approach tbh but I wanted to know your opinion first!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/documenso#178
No description provided.