Skip to content

Question About Adding File Upload Support (Especially PDFs) in Excalidraw #53

@yashop7

Description

@yashop7

I’m exploring the idea of adding a feature to upload and share PDFs directly on the Excalidraw whiteboard, but I’m unsure if it’s truly necessary given the challenges it presents. I’d like to outline the problems & suggest an alternative, and get your perspective on this issue & if so, how we should approach it.

Problems I’m Facing

Large PDFs: If someone uploads a bigger PDF, especially multi-page ones, it could slow down the whiteboard or even crash it during collaborative use.

Memory Overload: Excalidraw is lightweight by design, and adding file uploads might overload memory, affecting performance.

Ongoing Maintenance: With every new version of Excalidraw, we’d need to keep the upload feature compatible, which could mean constant updates and bug fixes.

A Suggested Alternative
Instead of uploading PDFs to the whiteboard, what if we introduced a feature to share them via messages or links? It feels quick & simple

Time Investment If It’s Needed
However, it’d be a big task—changing the Excalidraw codebase to handle file uploads would require modifications for file processing, rendering, caching and syncing. I estimate it’d take around 350 hours to do it right. So, we’d either can shift the upload feature to messages (which would be quicker) or extend the project timeline to accommodate this.

What Do You Think?
From my upper-level perspective, this looks like a challenging problem, but I am ready for it. Is the direct PDF upload a must-have for Jitsi-meet, or would sharing via messages work for most cases? If it’s the former, are you okay with the extra time it’ll take? I want to make sure my effort fits the project’s needs, so please let me know your thoughts so I can plan accordingly. @saghul @mihhu

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions