GSoC Proposal Idea: Unified Note Export with QR-Based Sharing in Joplin Mobile application

Hii I would like to discuss about the following idea of having a unified Note Export Sharing system. I have been using the Joplin Mobile Application for a while and found that currently sharing a note from mobile requires multiple taps and no specific format to export, there’s no quick and local option. Currently it implements a sharing feature where it uses system share to share the content of notes.

Proposed feature: This project aims to enhance existing sharing functionalities by introducing a unified note export and sharing system that includes:

  • Note-level PDF Export

  • Email sharing from the application enabling structured communication (redirecting to users native email sharing application with attached note to be shared)

  • QR based transfer of notes to reduce interaction overhead and improve usability on mobile devices through quick sharing options.

I am currently writing a proposal on this , I wished to know the Mentor’s views on this and would like to discuss more on this topic.

The main thing here is to identify if there is a community desire for this. I understand this is a feature that you have found yourself needing or wanting from your own experience of Joplin but does the community at large think the same thing?

Generally the ideas list we make for GSoC is because these are all features that we have found are generally quite desirable of frequently requested/complained about in the community. So really we would also want to see some evidence that this proposal is not just to solve your own usability issues but something the community in general would like to see.

I did find some previous discussion on these

Based on these discussions I planned a proposal to implement a quick share feature to export , I believe for Mobile version a quick sharing export feature is must especially for cross platform setups and education communities where user can share it to multiple others at once via QR.

I would like to know your views on it and would be happy to discuss this project in more detail.

Thanks for your time and consideration.

So how does your proposed sharing/publishing feature differ from the ones on Joplin Cloud and Server?

The proposed system does not replace Joplin Cloud or Server sharing, but builds on top of them by improving accessibility, usability, and format support on mobile devices.

Currently mobile sharing is limited to basic OS-level text sharing and separate publishing workflows.

This project enhances usability by introducing structured note-level export options such as PDF and email sharing(for all users), and improves accessibility by enabling QR-based access to already published notes( particularly for joplin cloud users).

In this sense, the system acts as a client-side enhancement that makes existing sharing features more accessible, consistent, and user-friendly on mobile devices, rather than duplicating any backend functionality.

My earlier Idea was to implement a local server to temporary host the notes so as to embed the link in the url but this approach introduces additional complexity such as network dependency, platform limitations (especially on iOS), and security concerns.

Therefore, the current approach uses the existing publishing feature provided by Joplin Cloud, which provides a more reliable and scalable way to share notes, while keeping the implementation aligned with the existing architecture of the application.

So essentially it is an Enhanced Note Export and Sharing in Mobile Application.

Hii again!

I have been refining the idea further. I have created a short summary the proposal now focusing only on a common export system.

Right now, the mobile version doesn’t have the same export and sharing features as the desktop version (like clean PDF export or well-formatted email sharing), which makes it less convenient for users who work on mobile.

My idea is to create a common export system on mobile where notes are first converted into a structured format (HTML) using the existing renderer. This can then be reused to support different features like PDF export and email sharing, while keeping the formatting consistent.

The goal is to improve mobile usability and bring it closer to desktop features, while keeping the design simple and aligned with the current architecture.

Do you think this would be suitable for a GSoC project, or should I adjust the scope?

Please let me know your views on this.

Thank you.

For reference, HTML sharing was previously implemented here (but the pull request closed without being merged): Mobile: Support sharing notes as HTML by personalizedrefrigerator · Pull Request #12164 · laurent22/joplin · GitHub

Hi I was looking at the PR what I understood was that everything was converted into a single html (using base64 embedding of resources into a single file ) this can create a problem related to memory, apart from that due to Hermes incompatibility it would cause warnings and unreliable behavior in the HTML packing process .

How about a instead of packaging into a single file , a minimal processing export flow is implemented.

Use the Joplin’s existing renderer ( Markdown-to-HTML-renderer) to generate clean note HTML instead of extracting content from the WebView.

Resolving resources without base64 by using Resource model and replace url with a path pointing to the local file.

Instead of reprocessing the full html only links or src attributes can be rewritten ensuring no heavy parsing.

Using this HTML to create the pdf and reuse this to share.

  • Would this be a full-length GSoC project?
  • Joplin's renderer currently needs to run inside a WebView in order to include plugin-generated content.
    • The linked pull request doesn't run the renderer within a WebView (plugin-generated content isn't shared).
  • react-native-webview doesn't support window.print without custom native code.

Would this be a full-length GSoC project?

The project is structured across multiple phases:

  • HTML generation using the renderer

  • Structured processing (resource resolution, link handling)

  • Cross-platform PDF generation

  • Sharing/email integration

  • Testing and edge case handling

Each of these components requires separate implementation and coordination, especially around filesystem handling, structured HTML transformation, and platform-specific PDF behavior.

Renderer requiring WebView for plugin-generated content

I understand that plugin-generated content is only available when rendering inside a WebView.

For the initial implementation, I plan to use Joplin’s Markdown renderer to generate HTML outside the WebView. This ensures consistent output without relying on WebView execution timing.

This means plugin-generated content will not be included in export initially. I would treat this as a known limitation and keep the pipeline extensible so that WebView-based rendering can be explored as a future enhancement.

react-native-webview not supporting window.print

Because of this limitation

Instead of using window.print, I plan to use the following approach :

  • Generate and process HTML in the JavaScript layer

  • Pass the final HTML to a native module

  • Use platform-native APIs to generate the PDF

Internally, native WebView components are still used only for rendering, along with:

  • iOS: UIPrintPageRenderer

  • Android: PrintDocumentAdapter

Expo Print requiring base64 embedding

From my understanding, the issue in the PR comes from embedding all resources into the HTML as base64, which increases memory usage.

In the proposed approach:

  • HTML remains lightweight and references local files

  • Resources (images, attachments) are resolved and stored in a temporary directory

  • HTML is rewritten to point to these local paths

If base64 is required, it would only happen internally during PDF rendering , not during HTML construction. This keeps the pipeline more memory-efficient and scalable for large notes.

I’ve also prepared a draft proposal here: Link

I’d really appreciate any feedback if you have time. I am happy to refine the scope based on your suggestions.

Thank you.