Drawpile review: collaborative drawing across desktop and Android
A collaborative drawing program
At a glance
- What is it?
- Drawpile is a GPL-3.0 drawing program for Windows, Linux, macOS, and Android that supports shared drawing, painting, and animation. Recent releases show active work, but adopting it means accepting a Qt-based client, patched native dependencies, and incomplete documentation for collaboration infrastructure.
- Who is it for?
- Drawpile fits users who want a shared canvas with people on different supported platforms and who are comfortable installing a desktop or Android application. It is a poor fit for organizations that need documented hosting controls, account administration, or self-contained source-build instructions in the repository alone.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly C, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 21, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Drawpile's shared-canvas use case and supported platforms
Drawpile addresses a specific gap between drawing alone and meeting around a shared visual workspace. The README says that users can “draw, paint and animate together with others on the same canvas.” That makes the project relevant to artists working in groups, educators or facilitators who need a common drawing surface, and users who want collaborative feedback rather than a sequence of separately exported images. The repository does not provide evidence for use cases such as production asset pipelines, formal design review, or managed classroom deployment, so those scenarios should not be inferred from the general collaborative-drawing description.
The declared platform coverage is unusually broad for a native drawing client: Windows, Linux, macOS, and Android. The repository identifies C as its primary language and also contains a Rust workspace, while the client dependency list points to Qt rather than a browser-only interface. This distribution model may matter to teams that need a desktop application or an Android client, but the README does not document account requirements, maximum participants, session discovery, moderation controls, or whether the same collaboration feature set is identical on every platform.
Drawpile is therefore best understood as a multi-user drawing application, not simply a standalone raster editor. Its value depends on the quality of a live shared session. The README does not document how users are discovered, how an invitation is issued, whether a session requires a hosted service, or whether a community operator can run the collaboration infrastructure independently. Those omissions prevent a firm assessment of deployment control and do not support claims about enterprise suitability.
Drawpile's client architecture from the repository layout
The repository layout shows a native application organized under `src/`, with a CMake build at the top level and platform packaging material under `pkg/`. `CMakePresets.json` indicates that build configuration is represented through CMake presets, although the listed repository files do not show the presets or their platform requirements. Documentation, metadata, tests, and automation have separate directories, which is consistent with a project that treats development infrastructure as part of the repository rather than a minimal source dump.
The `Cargo.toml` file adds a second explicit build system. Its workspace members are `src/drawdance/rust`, `src/tools/dprectool`, `src/tools/drawpile-timelapse`, and `src/tools/drawpile-cmd`. The workspace version is `2.3.1-pre`, uses Rust edition 2021, and inherits the `GPL-3.0-or-later` package license. This confirms that Drawpile includes Rust-based components and command-line tools in addition to its primary C codebase. It does not, by itself, establish which graphical parts are written in C or Rust, nor does it show how the Rust workspace integrates with every client build.
For the client itself, the README lists Qt on all platforms, OpenSSL on all platforms, KDE Framework Archive on Windows, Linux AppImage, and Android, plus libzip on macOS and Linux Flatpak. The platform-qualified dependency list is a concrete packaging boundary. Drawpile is not presented as a self-contained application with no native library requirements. Source builders must account for both broad dependencies and distribution-specific additions. The README also states that project builds patch some dependencies, with those patches stored under `.github/scripts/patches`.
Installing Drawpile and completing a first shared drawing session
The README does not provide a single command that installs Drawpile on every operating system. Instead, it directs users to the downloads page for prepared builds and to GitHub releases. It also points to a separate documentation page for compiling from source, and lists an Arch Linux package in the AUR. Because the repository does not contain package-management commands, version pins, or source-build flags in the documented installation section, this review does not invent them.
For a first installation, the documented path is to choose a build from the project download page or a release on GitHub:
https://drawpile.net/download/Readers should select a build appropriate for their supported platform and follow that page's instructions. The README confirms Windows, Linux, macOS, and Android support, but it does not explain the available file formats, system requirements, signing expectations outside Windows, or installation permissions.
For Arch Linux users, the repository identifies an AUR package:
https://aur.archlinux.org/packages/drawpileThat link is a distribution path, not a replacement for package-management instructions. The AUR entry and the current application release may not be synchronized, and neither the README nor the listed repository files explain how updates are tracked.
A complete first-use tutorial cannot be reconstructed from the README because it does not explain how to start the application, create a session, invite another person, or select a tool. The honest stopping point is the installation entry point. The first thing to verify after installation is whether the downloaded build opens on the intended platform. The next operational question, session creation and invitation, must be checked in the application or its separate help documentation rather than assumed from the repository overview.
Drawpile's dependency and build maintenance costs
Drawpile's build process carries more maintenance responsibility than a single interpreted application. The client depends on Qt and OpenSSL everywhere, with additional KDE Framework Archive and libzip dependencies tied to specific distributions. The README says these dependencies are pinned to known-good versions. It also states that source code is verified against upstream hashes and signatures, that SHA384 hash checks are performed during builds, and that some dependencies receive patches maintained in `.github/scripts/patches`.
Those controls can help reproduce a build more consistently, but they also create ongoing work. Upstream versions, source URLs, hashes, signatures, and local patches must remain synchronized. `.github/scripts/build-qt.cmake` and `.github/scripts/build-other.cmake` are identified as the places for build processes, versions, upstream source URLs, and hashes. A team planning to maintain its own packaging is therefore taking on more than compiling application source. It is adopting a dependency acquisition and patch-maintenance process.
The repository is not archived, and the last push was on 2026-10-15. Releases include `continuous` on 2026-10-13 and two 2.3.1 beta releases in 2026. This is evidence of recent project activity, not proof that every distribution receives timely security fixes or that the continuous channel has stable upgrade guarantees. The README does not publish a support policy for each release channel. Teams that need a fixed production release should treat channel selection and patch policy as separate adoption checks.
The GPL-3.0-or-later licensing also matters when Drawpile is redistributed or incorporated into another work. This review does not provide legal advice, and the license text should govern actual compliance. The repository includes `LICENSE.txt` and an `AUTHORS` file, while the Cargo workspace separately declares `GPL-3.0-or-later`.
Drawpile's operational limits and the local-drawing alternative
The clearest limitation in the README is missing operational detail. It does not document self-hosted server setup, firewall requirements, public-session exposure, participant limits, authentication, permissions, recording, moderation, or recovery after a disrupted session. It also does not document rollback for dependencies or whether a failed upstream fetch has an offline fallback. A drawing canvas can open successfully while the surrounding collaboration workflow remains unsuitable for a controlled environment.
A real alternative for work that does not need simultaneous editing is a local drawing application used by each participant separately, followed by manual exchange of exported files. The approach differs at the data-flow level. Drawpile places multiple users on the same canvas during a shared session, while file exchange transfers completed or periodically saved artwork without requiring all participants to edit one live canvas. The local route may avoid collaboration infrastructure, invitations, and simultaneous-session dependencies, but it also removes shared cursors, direct intervention, and immediate group editing. The README does not identify a named competitor, so this comparison is intentionally based on workflow rather than unsupported feature claims about another product.
Drawpile is the wrong choice when simultaneous group editing is unnecessary but a self-contained, fully documented deployment is required. It may also be unsuitable for source builders who do not want to track patched native dependencies. Conversely, users who need several people to paint or animate together across the listed operating systems have a clearer reason to inspect the application. The unresolved issue is not whether shared drawing is the stated purpose, but whether the surrounding session and deployment controls meet the user's actual requirements.
Drawpile release channels for evaluation and upgrades
The release list contains a `continuous` build dated 2026-10-13 and `2.3.1-beta.2` dated 2026-09-22, following `2.3.1-beta.1` from 2026-05-16. The repository's `Cargo.toml` still identifies the workspace version as `2.3.1-pre`. These details show several version labels in use, but the README does not explain their compatibility, stability, or upgrade policies.
For evaluation, the distinction matters because a continuous release can change independently of a numbered beta. An organization that values reproducibility should not assume that selecting the same application name pins the same underlying components. The documented dependency pinning applies to project build processes, but the repository does not say whether published continuous artifacts remain immutable or how users are notified about changes.
The last push was on 2026-10-15, and the repository is not archived. That status permits a description of recent activity without implying that upgrades are automatic or operationally free. The appropriate first check is to select a channel based on the need for fixes versus predictable releases. The second is to read the project's help and release notes for migration requirements, because the README does not document an upgrade path.
Editorial conclusion
Drawpile fits users who want a shared canvas with people on different supported platforms and who are comfortable installing a desktop or Android application. It is a poor fit for organizations that need documented hosting controls, account administration, or self-contained source-build instructions in the repository alone. Verify platform packaging, server operating requirements, and collaboration procedures before adoption, then confirm that the selected release matches the continuous or beta workflow the team intends to maintain.
Frequently asked questions
Which platforms does Drawpile support?
The README states that Drawpile runs on Windows, Linux, macOS, and Android.
How do I install Drawpile?
The README directs users to the downloads page, GitHub releases, or the AUR package on Arch Linux. Source compilation is documented on a separate Drawpile documentation page rather than in the README.
What does Drawpile's GPL-3.0 license require?
The repository identifies the license as GPL-3.0-or-later. The README does not explain the compliance obligations, so the license text and applicable guidance must be reviewed directly.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/drawpile-drawpile)Was this useful?