Giter VIP home page Giter VIP logo

excalidraw-desktop's Introduction

Excalidraw

An open source virtual hand-drawn style whiteboard.
Collaborative and end-to-end encrypted.


Excalidraw is released under the MIT license. npm downloads/month PRs welcome! Chat on Discord Follow Excalidraw on Twitter

Product showcase

Create beautiful hand-drawn like diagrams, wireframes, or whatever you like.

Features

The Excalidraw editor (npm package) supports:

  • 💯 Free & open-source.
  • 🎨 Infinite, canvas-based whiteboard.
  • ✍️ Hand-drawn like style.
  • 🌓 Dark mode.
  • 🏗️ Customizable.
  • 📷 Image support.
  • 😀 Shape libraries support.
  • 👅 Localization (i18n) support.
  • 🖼️ Export to PNG, SVG & clipboard.
  • 💾 Open format - export drawings as an .excalidraw json file.
  • ⚒️ Wide range of tools - rectangle, circle, diamond, arrow, line, free-draw, eraser...
  • ➡️ Arrow-binding & labeled arrows.
  • 🔙 Undo / Redo.
  • 🔍 Zoom and panning support.

Excalidraw.com

The app hosted at excalidraw.com is a minimal showcase of what you can build with Excalidraw. Its source code is part of this repository as well, and the app features:

  • 📡 PWA support (works offline).
  • 🤼 Real-time collaboration.
  • 🔒 End-to-end encryption.
  • 💾 Local-first support (autosaves to the browser).
  • 🔗 Shareable links (export to a readonly link you can share with others).

We'll be adding these features as drop-in plugins for the npm package in the future.

Quick start

Note: following instructions are for installing the Excalidraw npm package when integrating Excalidraw into your own app. To run the repository locally for development, please refer to our Development Guide.

npm install react react-dom @excalidraw/excalidraw

or via yarn

yarn add react react-dom @excalidraw/excalidraw

Check out our documentation for more details!

Contributing

Integrations

Who's integrating Excalidraw

Google CloudMetaCodeSandboxObsidian ExcalidrawReplitSliteNotionHackerRank • and many others

Sponsors & support

If you like the project, you can become a sponsor at Open Collective or use Excalidraw+.

Thank you for supporting Excalidraw

Last but not least, we're thankful to these companies for offering their services for free:

Vercel Sentry Crowdin

excalidraw-desktop's People

Contributors

apvarun avatar dependabot-preview[bot] avatar dependabot[bot] avatar lipis avatar shrirambalaji avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

excalidraw-desktop's Issues

Download a zip file of the latest excalidraw and serve the files locally so it can work offline.

Maybe for version 2, instead of loading directly from https://excalidraw.com we should serve them locally if exist.

  • Generate zip file and upload somewhere
  • Load app from local files if exist
  • In the background, check regularly for newer versions of the zip file
  • On start if there is a newer version downloaded and not installed, install it
  • Notify user if there is a new version to reload from the latest zip file

Proposal: Start Page for easy access

Feature request

To show start page when excalidraw desktop app opens.

  • Allows to open recent files quickly
  • Decide whether to start a new sketch or to open existing from file

Sample Wireframe:
Excalidraw Desktop Start Page

@lipis @pinussilvestrus Would like to hear your opinion on this.

[Packaging] Upload app to Flatpak Hub

Hi,

Linux users don't have an easy way to install the app on a distribution (either .deb, .rpm, .AppImage, snap or flatpak). I propose for Excalidraw to focus on Flatpak because it's a decentralized package manager which focuses on Desktop App, integrates well with Electron and works well cross-distribution (one package can be distributed to most linux users).

Here is the process to build a flatpak https://docs.flatpak.org/en/latest/electron.html and this is the mainstream repository https://github.com/flathub/flathub/wiki/App-Submission .

I've never built any flatpak package but it seems to be quite fast. I can help, I'm not an expert with Electron packaging and especially not with its best practices but let me know if you're interested with the proposal.

Thank you for building this awesome tool !

Saving a loaded a file should update the loaded file in-place

Currently after loading a file and then saving, Excalidraw will default to placing the file in ~/Downloads with an auto-generated name. Instead, it should update the loaded file in place preserving whether or not the scene is embedded, the background is included, and watermark is applied.

Resave files to the same destination

When you load a .excalidraw file, and then make some changes, and then save again, it should save to the same file, rather than save as a new file and force you to rename it.

Add thumbnail / preview to .excalidraw files on Mac/Windows/Linux

It would be awesome if you could distinguish between .excalidraw files in your download folder by having a thumbnail (and large preview by pressing space on a Mac). I assume it is possible to add these, since .sketch files have something similar?

I would love to dive into this and make a PR for this. No idea if I'm qualified to do it, but there is just one way to find out 😄

First collecting feedback / approval, before I'm spending time on this.

Architecture

Overview

excalidraw-202022901618 (1)

Initial open

  • Contains a local copy of Excalidraw app
  • Loads it and works offline

Open the app

  • Loads local version of Exaclidraw app
  • Periodically checks in the background for newer versions: version.json
  • If newer version is different than the local one then download latest asar packaged from the above URL
  • Unpack the contents
  • Ask user to reload the app to get the latest features

On Excalidraw.com side

  • Version can be generated on the build and stored as timestamp: 2020-02-28-21-50-45 in version.json (the actual format is up to debate)

  • Serve the version: https://excalidraw.com/version.json

    {
      "app": "excalidraw-2020-02-28-21-50-45.asar",
      "version": "2020-02-28-21-50-45"
    }
  • Serve downloadable app: https://excalidraw.com/excalidraw-2020-02-28-21-50-45.asar

How can I help?

Hey guys!

I'd love to contribute.

Can #23 be considered a roadmap that can be followed?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.