Skip to main content

· 3 min read

As was discussed last year, Joplin is switching to the GNU Affero General Public License v3 (AGPL-3.0) for the desktop, mobile and CLI applications, as well as the web clipper.

Any open source or commercial fork of Joplin will have to license any changes they make under AGPL, and share these changes back with the community. This is the main reason we switch to this license. It allows us to continue releasing the project as open source while ensuring that those who benefit commercially (or not) from it share back their changes.

What is the GPL license?

The AGPL license is based on the GPL license. This is what tldr;Legal has to say about the GPL license:

You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions. (source)

What is the AGPL license?

This is the license we'll use for Joplin from now on:

You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions. (source)

The AGPL license differs from the other GNU licenses in that it was built for network software. You can distribute modified versions if you keep track of the changes and the date you made them. As per usual with GNU licenses, you must license derivatives under AGPL. It provides the same restrictions and freedoms as the GPLv3 but with an additional clause which makes it so that source code must be distributed along with web publication. Since web sites and services are never distributed in the traditional sense, the AGPL is the GPL of the web. (source)

What does it change for users?

There is no changes for users of Joplin - the apps remain open sources and you can still use them freely.

What does it change for developers?

Any code you develop for Joplin will also remain open source. The only difference is that we'll ask to sign an Individual Contributor License Agreement (CLA) to ensure that the copyright of the entire codebase remains with the Joplin organisation. This is necessary so that if we ever want to change the license again we are able to do so without having to get the agreement of each individual contributor afterwards (which would be nearly impossible).

This is a bit of an extra constraint but it is hard to avoid. Contributor License Agreements are very common for GPL or AGPL projects. For example Apache, Canonical or Python all require their contributors to sign a CLA.

Questions?

If you have any questions please let us know. Overall we believe this is a positive improvements for Joplin as it means any work derives from it will also benefit the project.


Discuss on the forum

· 4 min read

Proxy support

Both the desktop and mobile application now support proxies thanks to the work of Jason Williams. This will allow you to use the apps in particular when you are behind a company proxy.

New PDF viewer

The desktop application now features a new PDF viewer thanks to the work of Asrient during GSoC.

The main advantage for now is that this viewer preserves the last PDF page that was read. In the next version, the viewer will also include a way to annotate PDF files.

Multi-language spell checking

The desktop app include a multi-language spell checking features, which allows you, for example, to spell-check notes in your native language and in English.

New mobile text editor

Writing formatted notes on mobile has always been cumbersome due to the need to enter special format characters like * or [, etc.

Thanks to the work of Henry Heino during GSoC, writing notes on the go is now easier thanks to an improved Markdown editor.

The most visible feature is the addition of a toolbar, which helps input those special characters, like on desktop.

Moreover Henry made a lot of subtle but useful improvements to the editor, for example to improve the note appearance, to improve list continuation, etc. Search within a note is now also supported as well as spell-checking.

At a more technical level, Henry also added many test units to ensure that the editor remains robust and reliable.

To enable the feature, go to the configuration screen and selected "Opt-in to the editor beta". It is already very stable so we will probably promote it to be the main editor from the next version.

Improved alignment of notebook icons

Previously, when you would assign an icon to a notebook, it would shift the title to the right, but notebook without an icon would not. It means that notebooks with and without an icon would not be vertically aligned.

To tidy things up, this new version adds a default icons to notebooks without an explicitly assigned icon. This result in the notebook titles being correctly vertically aligned.

Note that this feature is only enabled if you use custom icons - otherwise it will simply display the notebook titles without any default icons, as before.

Improved handling of file attachments

Self Not Found made a number of small but useful improvements to attachment handling, including increasing the maximum size to 200MB, adding support for attaching multiple files, and fixing issues with synchronising attachments via proxy.

Fixed filesystem sync on mobile

This was a long and complex change due to the need to support new Android APIs but hopefully that should now be working again, thanks to the work of jd1378.

So you can now sync again your notes with Syncthing and other file-based synchronisation systems.

And more...

In total this new desktop version includes 36 improvements, bug fixes, and security fixes.

As always, a lot of work went into the Android and iOS app too, which include 37 improvements, bug fixes, and security fixes.

See here for the changelogs:

About the Android version

Unfortunately we cannot publish the Android version because it is based on a framework version that Google does not accept. To upgrade the app a lot of changes are needed and another round of pre-releases, and therefore there will not be a 2.9 version for Google Play. You may however download the official APK directly from there: Android 2.9 Official Release

This is the reality of app stores in general - small developers being imposed never ending new requirements by all-powerful companies, and by the time a version is finally ready we can't even publish it because yet more requirements are in place.

For the record the current 2.9 app works perfectly fine. It targets Android 11, which is only 2 years old and is still supported (and installed on millions of phones). Google requires us to target Android 12 which only came out last year.


Discuss on the forum

· One min read

Joplin is an open source note-taking app. Capture your thoughts and securely access them from any device.

We are looking to hire two JavaScript software developers to work on the desktop, mobile, and server applications. All those are built using modern technologies, including React, React Native and Electron with a strong focus on test units.

You need to demonstrate some experience with at least some of these technologies, and willing to learn more and touch various different projects.

You will be part of a small team, so you will have an opportunity for a high-impact role, targeting hundreds of thousands of users.

If you're interested please contact us at job-AT-joplin.cloud

No agencies please.


Discuss on the forum

· 3 min read

If you watch the Joplin source code repository, you may have noticed a lot of Renovate pull requests lately. This Renovate tool is a way to manage dependencies - it automatically finds what needs to be updated, then upgrade it to the latest version, and create a pull request. If all tests pass, we can then merge this pull request. So far we have merged 267 of these pull requests.

Updating Joplin packages was long due. It is necessary so that we don't fall behind and end up using unsupported or deprecated packages. We also benefit from bug fixes and performance improvements. It is also important in terms of security, since recent package versions usually include various security fixes.

We used to rely on a tool called "npm audit" to do this, however it no longer works on the Joplin codebase, and it was always risky to use it since it would update multiple packages in one command - so if something went wrong it was difficult to find the culprit.

Renovate on the other hand upgrades packages one at a time, and run our test units to ensure everything is still working as expected. It also upgrades multiple instances of the same package across the monorepo, which is convenient to keep our code consistent. It also has a number of options to make our life easier, such as the ability to automatically merge a pull request for patch releases since this is usually safe (when a package is, for example upgraded from 1.0.1 to 1.0.3).

Although Renovate automates the package upgrades it doesn't mean all upgrades are straightforward - our tests won't catch all issues, so the apps might end up being broken or cannot be compiled anymore. So there's manual work involved to get everything working after certain upgrades - for the most part this has been done and the apps appear to be stable so far.

This will however be an important part of pre-release 2.10 (or should it be 3.0?) - we hope that everything works but we may need your support to try this version and report any glitch you may have found. As always pre-release regressions have the highest priority so we aim to fix them as quickly as possible.


Discuss on the forum

· 3 min read

As some of you may know Joplin Cloud so far has been operating under my own single-person limited company in the UK. This was mostly for convenience since it meant I could get things going quickly without having to setup a special structure for it.

Now that Joplin Cloud is becoming more mature however a proper company, simply called Joplin, has been created. This company will be based in France, and will be used mainly to handle the commercial part of the project, which currently is mostly Joplin Cloud. I'm still heading the company so there won't be any major change to the way the project is managed.

What does it mean for Joplin Cloud?

There will be no significant change - the website ownership simply moves from one company in the UK to one in France. The new company is still owned by myself so I will keep following the same roadmap.

What does it mean for the open source apps?

On the short term, the only visible change will be moving the non-open source assets, such as logo or trademark from the UK company to the French one. So expect a few changes in copyright notices here and there.

In the medium to long term, I would like to hire one or two software developers to help me with the Joplin Cloud development, because we reached a point where managing the whole project is difficult for a single person, so some help is needed. Some of their work might also touch the open source apps since both are quite related - but of course that work will remain open source too.

As a general rule, there will be a permanent commitment to keep the apps open source and to derive value from Joplin Cloud/Server.

Longer term I would like to create a non-profit organisation to handle the open source applications and to make decisions about the project, as well as to decide how to allocate any funding we receive (for example from GSoC).

Looking forward

Those past 6 years of developing Joplin have been an exciting and rewarding experience, thank you to all of you of the friendly and vibrant Joplin community for your contribution toward making Joplin the software it is today, and looking forward to continuing the journey together!


Discuss on the forum

· One min read

We are glad to announce the first Joplin Meetup that will take place on 30 August 2022 in London!

This is an opportunity to meet other Joplin users as well as some of the main contributors, to discuss the apps, or to ask questions and exchange tips and tricks on how to use the app, develop plugins or contribute to the application. Everybody, technical or not, is welcome!

We will meet at the Old Thameside Inn next to London Bridge. If the weather allows we will be on the terrace outside, if not inside.

More information on the official Meetup page:

https://www.meetup.com/joplin/events/287611873/


Discuss on the forum

· 2 min read

As always a lot of changes and new features in this new version available on both desktop and mobile.

Multiple profile support

Perhaps the most visible change in this version is the support for multiple profiles. You can now create as many application profile as you wish, each with their own settings, and easily switch from one to another. The main use case is to support for example a "work" profile and a "personal" profile, to allow you to keep things independent, and each profile can sync with a different sync target.

To create a new profile, open File > Switch profile and select Create new profile, enter the profile name and press OK. The app will automatically switch to this new profile, which you can now configure.

To switch back to the previous profile, again open File > Switch profile and select Default.

Note that profiles all share certain settings, such as language, font size, theme, etc. This is done so that you don't have reconfigure every details when switching profiles. Other settings such as sync configuration is per profile.

The feature is available on desktop only for now, and should be ported to mobile relatively soon.

Save Mermaid graph as PNG/SVG

This convenient feature allows exporting a Mermaid graph as a PNG or SVG image, or allows copying the image as a DataUrl, which can then be pasted in any compatible text editor. Thanks Asrient for implementing this!

Publish a mini-website using Joplin Cloud

Joplin Cloud now supports publishing a note "recursively", which means the notes and all the notes it is linked to. This allows easily publishing a simple website made of multiples and images.

To make use of this feature, simply select Also publish linked notes when publishing a note.

And more!

In total there are 38 changes to improve the app reliability, security and usability. Full changelog is at https://joplinapp.org/help/about/changelog/desktop


Discuss on the forum

· One min read

We are glad to announce that Google allocated us six projects this year for Google Summer of Code! So this is six contributors who will be working on various parts of the apps, both desktop and mobile, over the summer.

Over the next few weeks, till 13 June, will be the Community Bonding Period during which GSoC contributors get to know mentors, read documentation, and get up to speed to begin working on their projects.

Here's the full list of projects, contributors and mentors.

Project TitleContributorAssigned Mentor(s)
Improve PDF previewer of JoplinasrientRoman, JackGruber
Implement default plugins on desktop applicationmak2002CalebJohn, Laurent
Mobile — Easier EditingHenry HDaeraxa, CalebJohn
Improve plugin search and discoverabilityRetr0veJackGruber, Stefan
Tablet Layout ProjectTolu-MalsLaurent, Daeraxa
Email PluginBishoy Magdy AdeebStefan, Roman

Discuss on the forum

· One min read

The "Contributor Proposals" phase of GSoC 2022 is starting today! If you would like to be a contributor, now is the time to choose your project idea, write your proposal, and upload it to https://summerofcode.withgoogle.com/

When it's done, please also let us know by posting an update on your forum introduction post.

If you haven't created a pull request yet, it's still time to create one. Doing so will greatly increase your chances of being selected!


Discuss on the forum