pencil is a free, open source design & prototyping project written in JavaScript and released under GPL-2.0. It has 9,865 GitHub stars, 791 forks and 533 open issues, and was last pushed 4 months ago. On this registry it ranks #10 of 23 tracked projects in Design & Prototyping, with 5 head-to-head comparisons available.

What is pencil?

Pencil is a free and open-source diagramming and GUI prototyping tool, licensed under GPL-2.0, that lets designers and developers sketch wireframes, mockups, and diagrams on the desktop without a commercial licence.

What it is

Pencil is a desktop application for drawing diagrams and prototyping graphical user interfaces, published under the GPL-2.0 licence and developed in JavaScript. It belongs to the Miscellaneous / Design & Prototyping category of this registry, and its home page is hosted at pencil.evolus.vn. The current line of work, Pencil V3, is a rewrite of the application that runs on Electron rather than the older Mozilla XULRunner runtime. Topics attached to the project include drawing, sketching, wireframe, mockup, ui-design, prototyping, electron, nodejs, and javascript.

The concrete problem Pencil addresses is the performance and scalability ceiling of its earlier versions. Pencil V3 was started to fix major performance and scalability issues, and the rewrite introduces a zip-based file format that supports large documents and better embedding of external bitmaps and other resources. A new page management mechanism dramatically reduces memory usage for large documents, and document pages can now be structured into a tree-like model. Custom fonts can be embedded into Pencil .epz documents, and printing and PDF export are being improved for all platforms with many options. The move to a Node.js-based environment also addresses the fact that Mozilla XULRunner is outdated.

Key capabilities

  • Runs on Electron instead of Mozilla XULRunner, giving a Node.js-based runtime that is easier for developers to work with.
  • Uses a zip-based document format with the .epz extension, supporting large documents and embedding of external bitmaps and resources.
  • Reduces memory usage for large documents through a new page management mechanism.
  • Structures document pages into a tree-like model.
  • Embeds custom fonts directly into Pencil .epz documents.
  • Improves printing and PDF export across platforms with many options.
  • Introduces a new UI approach alongside the rewritten runtime.

Who uses it and how

  • Designers and developers use it for wireframes, mockups, sketches, UI design, and general diagramming, which are the activities named in the project topics.
  • It runs as a desktop application on OS X 64-bit 10.9 and later, Windows 7 and later, and Linux distributions including Ubuntu 12.04 and later, Fedora 21 and later, and Debian 8 and later.
  • Arch Linux users install the pencil package from the Arch User Repository.
  • Gentoo users install the media-gfx/evoluspencil package.
  • Teams handling large documents benefit from the tree-structured page model and the page management mechanism that lowers memory usage.

Getting started

The README setup path is to clone the repository, check out the development branch with git checkout development, run npm install, and start the application with npm start using the prebuilt version of Electron, which requires nodejs 5 or later and npm for package management. Prebuilt distribution packages are also listed for Arch Linux and Gentoo.

How it compares

No list of paid products that Pencil replaces is provided in the facts, and no comparable tools are named alongside it. Pencil therefore stands alone in this registry, described only on its own terms.

When to use it — and when not to

Pencil V3 is under heavy development, with GA builds expected in June, so anyone needing a stable production release should weigh that timing before adopting it. Self-hosters do not face a database, storage, or SMTP requirement here, because Pencil is a desktop application rather than a server product, but they do need nodejs 5 or later and npm to build it from source. Users on operating systems older than OS X 10.9 or Windows 7 are not supported, and the project carries 533 open issues, which suggests a level of maintenance work still in flight.

project readme (upstream, from github) — read inline

Image of Yaktocat

About The Next Version

Pencil V3 is a rewrite of Pencil that aims to fix major performance and scalability issues of the application. The new version is under heavy development and we are expecting GA builds in June. The following list summarizes important changes in the new version:

  • Pencil V3 uses Electron instead of Mozilla XULRunner as the runtime. We expect that by moving into this Nodejs-based environment, the Pencil source code can be much easier for all fellow developers to play with. The fact that Mozilla XULRunner is outdated is also a reason for the movement.
  • A new, zip-based file format was introduced to support large documents and better embedding of external bitmaps/resources.
  • A new mechanism for page management that dramatically reduces memory usage for large documents.
  • Document pages can now be structured into a tree-like model.
  • Custom fonts can now be embedded into Pencil .epz documents
  • Printing and PDF export will be improved to support all platforms and with many options
  • New UI approach

Setting up

Pencil uses Atom Electron as the runtime, follow the these steps to setup the environment:

  • Clone this repository

  • Make sure you are using nodejs 5+ (Pencil development only needs npm for package management. Node runtime is not required.)

  • Checkout this development branch:

    $ git checkout development
    
  • Install dependencies:

    $ npm install
    
  • Start Pencil using the prebuilt version of Electron

      $ npm start
    

Supported Platforms

OS X

Only OSX 64bit 10.9 and later are supported.

Windows

Windows 7 and later are supported, older operating systems are not supported (and do not work).

Linux

Frequently asked questions

Is pencil free to use?

pencil is open source under the GPL-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does pencil do?

The Pencil Project's unique mission is to build a free and opensource tool for making diagrams and GUI prototyping that everyone can use.

What is pencil written in?

pencil is primarily written in JavaScript. Its source is publicly available at https://github.com/evolus/pencil, and it has 9,865 GitHub stars.