Skip to content

dominiksta/wournal

Repository files navigation

Wournal

Wournal is an app that is probably best described as "digital paper". You can freely put your handwriting, text, images and vector graphics on a canvas that is about as easy to use as paper, freeing up your brain to focus on the subject matter.

  • Can be used to annotate PDF documents
  • Supports Windows and GNU/Linux. (Android support is planned, MacOS/iOS open to contribution)
  • Save single-page documents as SVG to interoperate with other software.
  • Respect system dark/light mode.

Screenshot

Screenshot PDF Annotation

Current Project Status

Wournal just released (2024-01-07) as an alpha version. There may still be some bugs creeping around, but it should be mostly stable.

There are lots of things planned for the future (see below), but the biggest thing still missing is an Android version.

Development Roadmap

Known Issues:

  • High DPI / Scaling is not Ideal
    • Zooming PDF Documents Looks a Bit Weird
    • Text Rendering on Default Zoom Level can be Slightly Blurry

Before Beta:

  • Store Config as File Instead of in LocalStorage
  • PDF Annotation with pdf-js
    • Viewing & Annotating
    • Highlight Text
    • Choose between attaching PDF to WOJ, Relative or Absolute File Path
  • Exporting to PDF with pdf-lib
  • Table of Contents
    • Auto Import From PDF
  • Tabs
  • Tablet (and Phone) Friendly UI
  • Android Version with Cordova or Capacitor
  • Stack Trace & Bug Report Dialog
  • Auto Saves
  • Single Click to Select
  • Polish Icon (especially lower resolution versions)
  • Simple Website with some Documentation with GitHub Pages

Before 1.0

  • Default Document Zoom Level Config Option
  • Drag&Drop From File Manager to Open
  • Jumplist
  • Customizable Pen Cursor Angle Change (Especially for Lefties)
  • Lasso Select
  • Set Default Paper Style
  • Vertical Space Tool
  • Rotate Selection
  • Notify Update & Display Changelog

(Probably/Maybe) After 1.0

  • Different Page Layouts
    • Single Page
    • Two Pages (Continuous)
  • Annotate Multiple PDFs in one Wournal Document
  • Import XOJ (from Xournal)
  • Import Annotations from a PDF (at least a bit)
  • Apply New Page Style to All Pages
  • Custom "Sticker" or "Element" Collections (like Google Material Icons or Cisco Networking Diagram Thingies)
  • Page Thumbnails in Left Panel
  • Put Text Marker Strokes on a Separate Layer to Always Have Text In Front
    • Xournal does not do this, Xournal++ and PDF Annotator do
  • A Textfield with Syntax Highlighting for Various Programming Langs

Lineage and Thanks

Wournal is primarily inspired by the wonderful Xournal and can therefore be seen as part of a whole lineage of programs written over the years like the venerable Microsoft Windows Journal, Jarnal or the more modern Xournal++ and MrWriter.

In addition to all developers of these programs, ConnorsFan on StackOverflow also deserves a big thank your for the initial basic template for the line smoothing algorithm.

Why write this when X exists?

Most of the programs in the lineage of Wournal have not been maintained for a long time, with three exceptions:

  • Xournal++ is written for GTK in C++. This has some advantages, but it also introduces a number of issues. Porting to Android/iOS is impossible, development and debugging production builds can be quite intimidating and subtle differences in behaviour can and do cause instability on Windows. Additionally, embedding a web app like Wournal can be done in many more environments then a native app like Xournal++. Xournal++ is a wonderful project that deserves a lot of respect for pushing FOSS note taking software, but it does have some limitations that make it deserving of competition.

  • PDF Annotator is a proprietary Windows-only application (probably written in .NET). It slows down significantly with documents containing a decent amount of handwriting. And it can be a bit expensive for a casual note taker or broke student.

  • MrWriter is written for Qt in C++, which means it inherits some of the issues mentioned for Xournal++. It is in a similar state of development as Wournal, but it struggles with performance on Windows.

There are likely some competitors that are not mentioned here. If you feel some program is missing here, feel free to expand this section!

Development

Wournal is a mostly relatively normal electron app, except that it uses mvui as a frontend framework. I know, I know, we really need more javascript frameworks, but there were some good reasons to choose it, mainly that a tiny framework like mvui means that Wournal should be easily maintainable long into the future... and it was also kind of fun. You should really not be scared to contribute because of this, you can reproduce most common React patterns in mvui.

git clone --recurse-submodules https://github.com/dominiksta/wournal/
npm i
npm run dev

Building

npm run package # build linux on linux
npm run package:wine # # build windows through docker