Developer center


Are you a developer? Want to learn how to develop skins for albums published with jAlbum, or how to write plugins for the application? Our developer center contains all the information you need, and more.

jAlbum retains the right at its sole discretion to remove any skin placed in its skin repository.

Skin Naming

If you are creating a new or modifying an existing skin, there are a few rules about naming the skin:

  • Stick to one-word names, i.e., without spaces or punctuation. It's easier to deal with a skin called BestSkinEver than with a skin called Best Skin Ever.
  • Don't use a variation of the name of an existing skin. For example, if your skin is based on Minimal, don't call it Minimal2 or ImprovedMinimal. This leads to user confusion about whether the new skin is an update to the original one, and about who is responsible for the skin.
  • Don't use trade names, or the name of any of the third-party scripts you are using in the skin. For example, if you're using the greatstuff.js script, don't name the skin GreatStuff. This can lead to copyright and license violation problems, both for you and for jAlbum. Even if the script is open source and has a completely free license, this should still be avoided, even if the script author gives his permission. This kind of naming causes user confusion. People looking for the greatstuff.js script can inadvertently land on the jAlbum site, and are then puzzled about why they can't get the greatstuff.js script here.

Third party licensing

If you're using any third-party code, make sure you're not violating the licensing terms imposed by the author of that code. Remember that even if you're not charging people for using your skin, jAlbum itself could be deemed to be "selling" the code used in your skin.

If any code used requires accreditation, or a license to be included, ensure you conform to the stated terms. Accreditation should be done both to the stated terms and in the spirit of those terms, e.g. if a link to a website or a credit text it must be clearly and permanently visible.

Skin development

Want to learn how to write your own jAlbum skin? Or perhaps you just want to know how you can enhance your favorite one? The skin development section of the developer center covers all you need to know when working with jAlbum skins. For model skins, showing how to implement specific functions see this thread in the skin developer forum

If you decide to compile your skin, see tutorial below on compiling in NetBeans, note that you should use Java 14 as the Source/Binary




Plugin development

Skins extend the way jAlbum present albums. Plugins extend jAlbum itself. In the plugin development section you will learn how to make your own plugins.


The jAlbum desktop application is partly open source and can be extended in all sorts of ways. You can learn how to write your own image filter or external tool by browsing the API. If you need help during development, use our development forum section!

Note that when external tools are run variables, such as rootFolder, are bound just before script execution begins while a method call, like window.explorer.getRootFolder() does a dynamic lookup. So if you don’t get the expected result from a variable use an api call instead.

You can promote your plug-in or external tool in the external tool & plug-in forum


Note the release notes will normally provide information on API changes, but omissions can happen. Developers should refer to the API documentation below and if something has unexpectedly changed or is missing post a question in the Developers forum


An aid to customising jAlbum’s GUI look and feel themes

See related

System console snippet