Presenting the Zigzag skin

View sample galleryThe jAlbum family of skins has got a new member - Zigzag. This skin has a modern, responsive and clean design suitable not only to create galleries, but whole sites. We think Zigzag will be ideal for many smaller web sites presenting the works of not just photographers, but any smaller business, organization or things you are passionate about.

Zigzag doesn't use the classic index page->closeup navigation that are typical for jAlbum galleries, instead, images and videos are presented in large format along on the index page with possible longer descriptive texts. On desktop computers, the items are laid out in a zigzag fashion alternating between left and right aligned images, but on smaller devices such as tablets and mobile phones, it switches layout to alternate between images and text vertically.

 Flexible settingsZigzag also enables an "introduction section" at the top of the page where there is space for both a large header and corner logo, larger title and longer introduction text. Zigzag can be customized in many ways without the need to tweak the code (which is fine too by the way, -this is open source). Zigzag naturally also supports modern jAlbum features like custom pages, web locations, videos and hidpi images.

Download Zigzag today. Let us know what you think and do share your creations created with it!

Zigzag requires jAlbum 15.3 as it uses a more modern and easy API. We hope Zigzag will encourage you to to use as base for your own skins. If you know anything about css and html, check out Tools->Skin developer->Edit skin files!


The story behind

View source of inspirationThis skin is jointly developed by me, Anders and Laza ("Team jAlbum"). We share office space in Stockholm, Sweden with several companies, mainly for social networking reasons. I was then introduced to the product Braskotten by a fellow "colleague" and web designer -Jennie Hagman. This small site presents a clever way to kindle your fireplace using pine cones. I admired the site design and thought to myself "hey, a jAlbum skin could produce that kind of design too" so we set off to produce a skin with the capability to mimic that look. (We did write the code from ground-up though). Here is our initial take on it. We also added support for sub folders, so if you look at the bottom of that gallery there is a section about Pistachio ice cream making. Totally unrelated, but one of my passions :-).

Once we were able to mimic the look we set off to make the look customizable and added a skin user interface. This way of producing a skin proved to be very effective. Start by being inspired by an existing design, then set up a sample jAlbum project and create a new skin. Focus on getting the css+html right first (files "index.htt" and "common.css"), then write the skin settings user interface ("onload.bsh"). Our Developer Center is a good resource as well as checking out the source code from other skins. Here's finally another sample gallery produced with Zigzag.

I finally wish to thank Braskotten and Jennie Hagman for being able to use this design as inspiration for Zigzag.

jAlbum awarded Editor's pick

We're proud to tell that jAlbum 15 has been awarded Editor's Pick in - one of the leading software catalogues today. jAlbum's flexibility, ease of use and high quality result were the main factors that motivated their top rating. Read full review.




Feedback and kiosk tool in Tiger skin

I can imagine one of the main reasons people choose jAlbum over simpler solutions is the wide choice of interaction possibilities the skins offer. For instance Turtle skin has offered a so-called feedback tool, through which visitors could have left feedback. When I made the new Tiger skin, my goal was to offer nearly the same functionality as Turtle did. There were some exclusions though, like the aforementioned feedback tool. The reason why Tiger did not offer this from the start was that I always planned to renew it. Passing a big chunk of data to the email client is impossible because of operating systems limitations. Probably this is due to security reasons, as the mechanism is the same as opening a normal web link. And once a link is longer than 2048 characters it might get suspicious.

Finally I gave in to user requests, and implemented this feature in Tiger too. Once I was there, I tried to make it better too. The new tool is based on a template, so you can customize the user experience widely. By default the tool offers commenting on the album and on selected photos, but you can easily tweak it to let visitors order photos too. There are a lot of users who would like to avoid PayPal as the only payment method. I can see the point. PayPal is not present in every country, they have a margin, and have some crazy restrictions you might not want to undertake.

With this new kiosk mode you can collect orders through email, and manage the payment by yourself. Be aware though this little tool not nearly as sophisticated as the PayPal cart. No calculations, no discount coupons, no shipping cost, and so on. It’s just the barebones, still can be sufficient for simpler tasks. In the future the possibility of sending mails through the server’s mail() function might also be added.

One another field it excels Turtle is that it can be configured to provide machine-readable output. It needs some coding knowledge – I admit – but by using this option you can automate the ordering process. Just read the email as a javascript variable, and you can decode the form with the stringify() method right away.

The limitation in sending large amount of data has also been circumvented by offering the user to copy / paste the data manually to the email client if the data is too big for the OS to pass.

Sample albums

1. Feedback

This album was made with the default Feedback options (see Settings → Tiger → Sections → Feedback). I’ve only added my email address and added instructions both in the “box” and for the popup window.

2. Kiosk

This other album was made with a customized “Feedback template” (see Settings → Tiger → Sections → Feedback → Feedback template in order to offer size and quantity boxes. Here’s the code I used:

<!-- items:start -->
<form class="inline">
	<select name="type">
		<option name="9x13">9&times;13 cm (&euro; 0.2)</option>
		<option name="10x15">10&times;15 cm (&euro; 0.3)</option>
		<option name="15x21">15&times;21 cm (&euro; 0.5)</option>
		<option name="21x30">21&times;30 cm (&euro; 1)</option>
		<option name="A1">A1 poster (&euro; 10)</option> 		
		<option name="download">Download (&euro; 5)</option> 		
	<input type="number" name="copies" min="1" max="50" value="1" title="Copies (max. 50)" /> 
<!-- items:stop -->
<div class="row">
	<div class="large-8 large-centered medium-10 medium-centered columns"> 			
		<form name="address">
			<label for="name">Name</label>
			<input name="name" type="text" placeholder="Your name"/>
			<label for="street">Street address</label>
			<input name="street" type="text" placeholder="Street address"/> 
			<label for="city">City</label> 
			<input name="city" type="text" placeholder="City" /> 
			<label for="postcode">Post code</label>
			<input name="postcode" type="text" /> 			
			<label for="contry">Country</label> 
			<input name="country" type="text" placeholder="Country" />

As you might have noticed, there are two special delimiter lines (marked in red). Their purpose is to mark the repeating code that should be attached to every selected item. The code part before <!-- items:start --> will appear above the items, meanwhile the code after <!-- items:stop --> will be placed below them. Only the contents of the <input>, <textarea> and <select> fields will be sent, so you can add labels, comments – those will not get into the email – only the user input. (Naturally, the file name and path will also be sent, so you can easily identify the photo.) You can also add hidden input elements if you need some special info, e.g. <input name="filesize" type="hidden" value="${fileSize}">. As you can see the skin can process image variables too.

I hope you’ll find this little tool useful. If you have any questions, please let me know in the skin’s forum – we’re glad to help!

Presenting jAlbum 15

jAlbum 15

Get slim with jAlbum 15!

Get jAlbum 15 »

Release notes →

Now in Italian!

jAlbum 15 now speaks Italian too. Thank you Filippo Bottega for providing this!

I’m proud to introduce jAlbum 15 to you. jAlbum 15 offers a smorgasbord of improvements from the inside out. It’s hard to pinpoint one specific feature that stands out. What matters most to you depends on your needs. Software that’s been around this long (jAlbum is from 2002) is sometimes accused of being bloated with features. We therefore just don’t want to add stuff that only 1% of the users may use at the expense of clarity. I’m therefore happy to say that jAlbum 15 has been reworked and cleaned-up to be faster, more robust, handle images better, take less disk space, look better and be more intuitive. On top of this, there are new features too :-). Let’s present some highlights! As always, you can read the full story in our release notes. Oh, we offer 30 new trial days for everyone so you can try it out fully. If you’re on an active support & update plan, it’s a free update. If you’re not, we offer discounted updates.
Just sign in first.

360° images

jAlbum now supports 360° images. These images puts you in the location the image was taken. You’re now free to look at the surroundings from any angle. There are no frames! Don’t disregard this as a gimmick. Even though the concept has been known for years, ease of use and quality has gradually increased and prices dropped significantly. Basically every camera manufacturer now offers such a camera. There are good models available for under $300. In September, Team jAlbum were invited to Bol, Croatia by Roni Marinkovic – a long time jAlbum user and skin developer. We enjoyed conferencing (well...), photographing, filming, eating, drinking, diving and windsurfing. Let us share our memories in 360° in this gallery (the 360° images are those with comments). Our “Tiger” skin is currently the only in-house skin supporting 360 images, but our community is also delivering support for this. See

Hard link support

Can you imagine the disk size of an album dropping from 400MB to 10MB while presenting the same images? It may sound like magic, but is now possible through a technique called “hard links” and is supported by most modern file systems on Windows, Mac and Linux. If activated (under Preferences → Album), jAlbum will no longer make copies of original images, videos and skin resource files that’s included in an album. Instead "hard links" will be generated. Don’t confuse them with symbolic links and their limitations. Read more in our help pages!

Better looking theme images

Theme images are the usually wide header images that appear on top of galleries made with the Turtle and Tiger skins for instance. In jAlbum 15 it’s now possible to select a theme image that’s different from the image that represents that folder in the parent level (the “folder thumbnail”). This is important as it’s often hard to find one single image that both fits a square folder thumbnail and wide theme size.

Here’s a demo gallery that demonstrates this. In my humble opinion it looks awesome, doesn’t it?.

We’ve also made it easier to select the focus for cropping the theme image. Hopefully no more “chopped heads” in theme images anymore. All this has been implemented in a new intuitive “folder property panel” that’s appearing to the right of the thumbnails in jAlbum’s explore view. Just drag and drop images onto the two drop areas of the property panel to select representing folder image and theme image. The new folder property panel also makes it more intuitive and faster to enter folder specific titles and descriptions. The panel can be minimized or enlarged to fit your needs.

Improved image processing

jAlbum 15 has new code for image loading and scaling, providing better compatibility with oddly formatted JPEG images and improving scaling quality to match the best competition on the market. Just select “Smooth” scaling quality under Settings → Images and then choose from one of the four new super high quality algorithms presented. Here’s a tricky sample image scaled with the “Standard” smooth algorithm and now with the “Blackman-Sinc” algorithm. Pay attention to the rightmost wire:


Adapted for HiDPI screens

Today we see more and more HiDPI / “retina” screens. That means screens having significantly smaller pixels. On Windows, using jAlbum on such screens has been a drag as the user interface didn’t compensate for the smaller pixel size. With jAlbum 15 this long standing problem has now been addressed. Enjoy!

PS: Mac and Linux versions already handle this.


jAlbum’s user interface was previously not adapted for HiDPI screens


Now properly adapted for HiDPI screens


This was just some highlights from jAlbum 15. As always, check out our release notes for a full list of enhancements and fixes. Remember, we offer 30 new trial days for all users, so check it out now!

Get jAlbum 15 now »

Top 10 album headaches

Albums today are complex piece of code. Starting with images and videos coming from various sources, processed through jAlbum and skins authored by many developers, the albums uploaded to very different servers, utilize tons of 3rd party services over the internet, and viewed on a multitude of device types, be it a mobile a tablet or a desktop PC. And all this in a constatnly moving environment, where browsers change, OS’s change and remote services change day-by-day. No wonder the final result is flawed sometimes, or it gets flawed over time. But we are here to help. We – jAlbum developers – all do customer support, so we’re all aware of the classic pitfalls. If jAlbum had less settings, less things could go wrong, but jAlbum is a power tool. Here are some advices so you avoid cutting yourself while using it.

1. Processing subdirectories

Generally you should always allow jAlbum to Process subdirectories. Previously, there was a quirky method of creating so-called “master albums” (album of albums) where turning this option off stopped jAlbum from processing these (already made) albums again. Fortunately, since jAlbum 14 we have introduced the “Web locations”, which makes this task much simpler, so today there’s no real use of this option – it’s there for backwards compatibility.

The other one, Process only updated directories was also useful in the old times, when the subdirectories could work independently of each other or the common resurces from the top level’s “res” folder. Today the folders of the albums are much more interconnected, they always rely on the common resources (like the Javascript or CSS files), so once you update the album with this setting ON, those subfolders where nothing has changed might get broken. The tricky thing is they usually don’t get broken instantly. They usually show signs of malfunction only after a skin update, and by that time users usually don’t remember they’ve changed this setting. (Although a skin change renders these orphaned folders instantly unusable.)

Those skins rely on a database (JSON) are even more prone to break if you don’t let jAlbum to go through the whole folder tree.

jAlbum is intelligent enough, so once you have processed a folder it will not reprocess the images again, only the HTML files, which is really just a matter of seconds.

I hope I could convince you to keep these setting like the ones marked on this picture. See Settings → Advanced → General page.

2. Upload errors, manual FTP upload

When you work locally, everything works the same way, reproducible. The internet, however, is full of potential errors. When you upload a large album it might happen the connection between your PC and the server gets broken (IO ERROR), the server drops the connection (READ END DEAD) or jAlbum gives up on retrying (TIMEOUT). Don’t panic, this happens every now and then. jAlbum (just like anything on the internet) is prepared for such errors. All you have to do is Upload the album again. It will continue where it has left off, so don’t worry, it won’t upload everything all the time. If the upload fails, jAlbum will display a little triangle () in the lower right corner – you can click for the full log.

If uploads doesn’t play well with your server, you can switch to another FTP client and test (e.g. ftp4j). jalbum has two ftp clients for the standard “FTP” protocol, and three for “sFTP”. If you get frequent connection timeouts you might want to check also if your firewall (or internet security software) isn’t blocking jAlbum’s traffic. Check if jAlbum is allowed to communicate through port 21 (sFTP: 22).

With jAlbum you can use an external FTP (or sFTP) application too to upload albums. While jAlbum always knows which files it has changed, when you upload the files manually you often don’t. When the FTP app relies on file modification dates it’s not as reliable either. For example if you only add one new folder, you might think it’s enough to upload that folder only. That’s not true. The files always change in the root folder, the /res folder, and all the HTML and JSON files throughout the whole album after a Make. It’s hard to follow, much easier to leave this to jAlbum. And jAlbum’s built-in FTP client is really fast, believe me. It can manage 6 simultaneous uploads! So unless you’re fully aware of what you do, I suggest you to rely on jAlbum’s built-in Upload tool. You can choose from 5 different clients inside jAlbum, so hopefully you can find the one works the smoothest with your server.

3. Broken album in local preview

You only see one or two rows of thumbnails in albums made with Tiger or Photoblogger using the local preview? That’s because these skins are based on a database format (JSON), which is not recognized by browsers as internet files (like a HTML file), and in an attempt to hide local files from phishing attacks, they block access to these files. The easiest way to preview these albums is using jAlbum’s built-in browser. Firefox also works out of the box. If you prefer Chrome you can still allow “local file acces” using a command line option. Save this file to you desktop (Windows / Mac), and double-click it. Close all Chrome windows before! Do not visit untrusted pages in this mode! The hardest way is using a web server and generate albums right into the “www/albums” folder. Being a web designer I use this method, but simply for tesing albums it might not worth the effort, I admit.

4. Garbage instead of accented letters, missing icons

The internet has settled on using UTF-8 as a standard for international codepage support. Previously we’ve seen some cases where it didn’t work, e.g. in old Internet Explorers, using the local album, but today UTF-8 is ubiquitous, it will work locally in any browser, on any server being it Linux or MS. So I suggest keeping this option always on. The other option stemmed from the same old use patterns is Naming → URL-encode links which also better to be kept on, although it supposed to not break pages if left off. (Tiger skin turns these options on whatever you choose, because its database is always encoded with UTF-8, anyway.) Read more about character encoding problems in jAlbum’s Wiki.

If the wrong letters appear only in the headline font (Google fonts) – e.g. question marks –, it might happen the font doesn’t contain the required codepage. Tiger and Photoblogger try to load the fonts with the language set in Preferences → Language, but not all Google fonts have all the codepages. You can check if a particular font has the required codepage here.

If no icons appear in the album – Tiger or Photoblogger – it’s probably because the server is not properly configured, and it sends the icon font file as plain text instead of binary. You will need to add .woff files to the MIME types application/x-woff on your IIS (Azure) server or ask your hosting provider if you don’t have access to settings. Turning on Settings → Tiger → Site → Site admin → Use Microsoft IIS or Azure server configuration might help too. On Apache servers these files supposed to work out of the box.

5. Album, folder and file names with accented or special letters

In theory the UTF-8 encoding should take care of this, but it’s always been a struggle for a skin developer to make special/accented letters work in file- or foldernames. And even if the skin can handle them, there’s no guarantee that every connected service will, e.g. social sites or PayPal. So if you want to remain on the safe side, use plain album and folder names, and keep the original image file names. Naturally, you can use any character in the final album, it’s just about the file and folder names that must work on the server and on the visitor’s PC too. (Using non-ASCII characters in file and folder names makes the ZIP feature broken too, that is the file names will carry invalid letters after unzipping.) You should avoid these frequently used letters (besides the accented ones) for example: ' " & @ # ! $ / * + ( ) [ ]

When creating a new album use e.g. “Mary and Johns wedding” (spaces are fine), then go to Settings → General and change Album title to “Mary & John’s wedding” – this time only the visible title will change.

The same goes for folders too. Add a new folder with the icon using simple (web-safe) letters, then switch to Title view and provide the final title (and Comment for lengthier text). This time you’re free to use any letter. (In the comment HTML tags are also allowed.) Same is true for regular files.

6. Facebook Share problems

There is an ongoing battle between Facebook and the rest of the world behind the scenes. You only see that your Facebook share button doesn’t work as expected, e.g. shares only the index page, but not the individual images. On one hand it’s comprehensible Facebook wants to get rid of newsfeed manipulations, and let only static pages to be shared for this reason, on the other hand they make fully legitimate uses impossible (like sharing individual images of an album) fighting back the malicious use. Some years ago they let sharing – even internal stages of webb apps – through a simple link. They’ve changed the syntax every now and then, and finally they’ve made sharing possible only through their API (application interface). Now, after the latest update this summer they’ve removed the customization possibilities. So you can’t customize which photo, what title and description to share, only the meta tags from the static page will be taken into account.

If you want to use Facebook’s other features (the Box, Like or Commenting) you’ll need to own a Facebook page. A private account simply doesn’t work, as you can’t assign “Apps” to it. You will need to create a new App here (click “Add new App”), and provide your website’s URL. Don’t forget to make it “Live”! In order it work properly, you will also need to fill in the Settings → Tiger → Site admin → Upload path box, because Facebook can work only with absolute URL’s, and if this is not provided upfront, the skin can’t generate the proper links to album thumbnails for example.

If you want to check if everything is set all right, copy/paste the uploaded album’s URL here and click “Debug”. This tool is also useful if Facebook has cached some wrong data, and you would like to get rid of that. (Click “Scrape again”!)

7. “Ooops” instead of map

Google Maps requires a unique “API key” for every site since 06/2016. This is something I can understand, because anonymous use could easily lead to server overloads, and even to malicious attacks. Click the “Create new/Manage” link in Tiger’s user interface to create a new key, or get one you’ve already created before. They keep older maps – as they call – “grandfathered”, that is, you don’t have to provide the API key in those albums. The maps in new albums, however, will be grayed out if no API key is used. The same goes for local previews, as you can’t create an API key for local files, obviously.

8. Custom code or caption template mistakes

Modern skins allow you to add HTML code at several places and allow you to edit the caption templates too. This comes with some risks though. If you enter the wrong HTML code, the whole album might get broken. For example you need to close most HTML tags, (e.g. <div>... </div>) otherwise the code comes next will be nested into your code, resulting in broken layout. (The exceptions are <img> <hr> <br> <audio> <video> <iframe> <input> – the so-called “void-elements”.) Also note, modern skins are based on HTML5 standard, in which some tags are not allowed, like <center>, <font>, <frame>, etc. Read more here. Instead of them use inline styles, e.g.
<p style="text-align:center; font-size:1.2em;"></p>

Or even better, use CSS classes:
<p class="mycomment"></p>
... and add style definitions through the Settings → Tiger → Site → Custom code → CSS box:
.mycomment { text-align:center; font-size:1.2em; } (Don’t forget the dot “.” before the name!)

9. Broken Tiger or Photoblogger album after upload

Not all servers created equal. Some of them for example are not prepared for handling the required JSON files out of the box. Microsoft’s IIS or Azure servers for example. (You can check the server’s type here – look for “Server: ”.) If you have access to the server settings, you can make the required changes by yourself. Also, once you’re there you might want to check if every file type is properly defined. (IIS servers are famous for being poorly configured.) You need to Add or check the existence of the following MIME types:

ExtensionMIME type

Read here how.

If you don’t have access to the server settings, you might want to ask your hosting provider to add support for the types above.

You can also use Settings → Tiger → Site → Site admin → Use Microsoft IIS or Azure server configuration to ask the skin to create a web.config file in the album’s folder, which enables these types for the current album only. Make + Upload

If your server is Apache/Linux, and the album shows the “The album’s main database file is missing or broken!” error, then the server’s configuration is wrong or the server hasn’t been updated in the last century. Ask your hosting company to get things in order.

10. Turtle to Tiger transition woes

Moving Turtle albums to Tiger skin is most of the time a painless process, but there are some things you need to be aware:

1. No separate slides mode exist in Tiger. Tiger albums are based on a database, which makes it easy to reach any photo from any page of the album. And this database would be gross (time consuming) to load on every slide page. Just like quitting Excel and opening every time you change cells. I see though not everybody will like this, because they’ve built albums with individual photos, linked or shared through social sites, let indexed by Google one-by-one. In this case it’s better to keep with Turtle in my opinion.

2. Although Tiger tries to import as many settings from Turtle albums as can, they might not fit with Tiger’s layout as good as with Turtle’s. I suggest looking through the following settings and set to Tiger defaults:

Images / Image bounds / Thumbnails200x150240x180 Tiger needs slightly larger thumbnails
Advanced / General / Write UTF-8-ON mandatory
Advanced / Naming / URL-encode links-ON mandatory
Tiger / Header / Top bar / Use search-ON suggested
Tiger / Header / Hero / Folder titletopLeft bottomSelect "Left top" for Turtle look
Tiger / Header / Hero / ${folderModDate}-Camera date range Select "None" if no dates needed
Tiger / Sections / Folders / Folder columns43Folders Look better with less columns
Tiger / Sections / Images / Thumbnail columns45suggested
Tiger / Sections / Images / Place captionsAs tooltipBelowTooltips aren’t mobile-friendly
Tiger / Sections / Images / Caption template-suggested
Tiger / Lightbox / Photo data-Press “Reset to defaults”will provide more and better photo data

That’s it for now. Write in the comments if you feel something has left out.