New Photographer Page

As many of you know, we are about to launch a new affiliate program. As part of this we have created some ways for Photographer to market their own images. Our new photographer page is one way to do this. You can try it out yourself:

So for example, if I want to create a link to photographer leaf’s images and make money on referred customers I would create a link like this:

Leaf’s images on YayMicro.

Hope you like it.

Share Button

Open Source: How Stock Photo Agency was Created Using Only Open Source Technology

Bjorn has written a paper on the Open Source use at YayMicro. Please enjoy! Click here to download a PDF-version (106kb).

Open Source Image Agency


With little resources, but lot’s of faith, energy and a common belief in how a microstock agency should be made, three entrepreneurs all quit their job at a leading stock agency, and started creating low price photo agency YayMicro from scratch.

They literally had nothing: No founding, no code, no stock photos. Today features more than one million stock photos and is commonly regarded as the easiest to use microstock agency. This is a fairy tale story showing how far the open source community has come, and how you can create something out of nothing if you just believe.

Microstock: Low Price Stock Photos


Microstock photography is an offshoot of traditional stock photo agencies. Microstock companies source their images via the Internet from a wide range of photographers, and customers can buy the stock photos at a very low price compared to traditional stock photo agencies. At anyone can register as a photographer, upload their pictures and, if the photos are approved by YayMicro’s reviewers, sell them to customers around the world. When an image is bought through the website, the photographer receives 50% in commission. In contrast to traditional stock agencies, licensing rights at YayMicro is super simple. YayMicro offers a Royalty Free license that gives the customer permission to use an image on anything the customer want, as many times as he wants, for as long as he wants. The only limitation is on reselling rights, which can also be bought, but at a higher price.


Since resources were scarce, and software is expensive, the people at YayMicro were pretty much forced to look at free alternatives for anything they did. Microsoft, Oracle, IBM and Apple were out the window. Instead, every piece of technology was chosen from the open source community.

Operating System – CentOS200px-CentOS_full_logo.svg

The enterprise-class linux distribution was chosen because it has proven to be one of the most reliable and stable distributions. It’s one of the most popular server distributions, meaning it is easy to find solutions and support online. YayMicro is currently running CentOS release 5.5 (Final) that was released in May this year.
CentOS was an easy choice for Yay, since the developers had experience from RHEL (Red Hat Enterprise Linux). The community around CentOS provides the support needed, and the functionality is just as good as RHEL. In fact, CentOS can be regarded as the free edition of the same software that makes Red Hat an enterprise solution. It is incredibly stable, efficient, and secure. It provides the same level of security as other enterprise Linux versions. All updates also coincides with a release of RH, ensuring consistent compatibility.


Database Management System – PostgresSQL

Obviously, for a microstock agency with millions of images, selecting the right DBMS is crucial. There were two clear alternatives YayMicro had to choose between; mySQL and PostgresSQL. Traditionally mySQL has been assumed to be faster, but less full-featured than PostgresSQL. However, this assumption is to a high extent based on history and old stereotypes, and for the most part outdated. PostgresSQL has become much faster recent years, while mySQL has implemented many functionalities in its last releases.

Both PostgresSQL and mySQL have their own loyal supporters, focusing on advantages in their system while talking mostly about faults and problems with the other. In the end both systems are excellent systems, and both would probably have been good choices for Yay. The choice might have come down to two factors that might or might not have been correct.

First, PostgresSQL have a rumor for scaling better with large amounts of data. This was hard to test initially, but with millions of millions of records, the database is still super responsive, even at high concurrency levels. Secondly it might have factored in that YayMicro felt PostgresSQL was the more “open” of the two open source systems, a belief that was somewhat “confirmed” in 2009 when Oracle bought mySQL.

Search Engine – Apache Solrsolr

One of the most important aspects of a successful stock photo agency is a good search engine. If users can’t find their picture in seconds, they’ll go somewhere else. Technically, searches could be done straight to the PostgresSQL database, but even though it’s super fast, it’s nowhere near what YayMicro needed. Consider this; each image is tagged with 50 keywords, the database holds more than a million images. Each search should take into account the relevancy of search phrase, orientation of images, how many people is in the picture, country of image, explicit images and categories. It should return a ranked list of a search, giving you exactly result from 350 to 400 if that is what you ask for. Consider thousands of people searching the website for images at the same time. Apache Solr is up for it.

Solr was created by CNET Networks in 2004, and donated to Apache in 2006, thereby going open source. Although Solr is still a young project, it has become extremely popular and proved to be a really strong search engine. YayMicro is the only microstock agency that uses this modern search engine, and as a result features the fastest search in the industry. Other users of Solr include NASA, CNET, Yellow Pages, and SourceForge. You can try the search here:

JqueryJavaScript Library – jQuery

JavaScript is what made webpages dynamic, and jQuery is what made JavaScript accessible. That’s a bold statement, and might be an exaggeration, but it is meant to show how important jQuery has been to the development of “jQuery: The Write Less, Do More, JavaScript Library” is their slogan, and it’s very fitting. Javascript has never been this easy.

Adding a simple line of code (importing the jQuery Library) does two things. It makes it easy to write javascript code, and it makes it possible to include tons of jQuery compatible plugins. Whenever new functionality like image previews, login boxes, button effects or image galleries have to be implemented, jQuery is there to help. It’s not an exaggeration that implementing the preview function on the page took less than three hours, and most of that time was used browsing for the right plugin. Released just four years ago in 2006, it’s already used by more than 31% of the 10.000 most visited websites. That’s no coincident.

YayMicro uses the latest release, 1.4.2 of jQuery. Updates are done as soon as new versions are proven to be compatible with all used plugins.

Image software – ImageMagickimneeeerdo

An image agency needs a stable and extensive image converter. ImageMagick provides all the needs, and does so with a BSD license. All image conversions and vector graphics are done with ImageMagick and GhostScript. ImageMagick is also easily adjustable to Yay’s server environment.

ImageMagick has support for over 100 formats, tons of functionality and extensive security features, including memory and thread error detection. All the stock photos, more than one million, have in some way been handled with ImageMagick.

logoWeb Application Development Framework – Stripes

Web Application Development with Java has historically been responsible for many headaches for developers who had to spend 80% of their time configuring, and only 20% of the time were spent on actual code writing. When Struts went open source in 2000, it got a little better for developers, but there was still a lot of time spent on configuration. WebWork 2 and Spring-MVC are better, but nothing really compares to how easy it is to develop Java EE applications with Stripes. Auto-discovered ActionBeans, transparent file upload capability and a great Localization system are just some of the things that make Stripes so easy to use.

On the Stripes website, they claim that: “Stripes aims to provide an experience similar to owning Apple hardware, Sony TVs and luxury German cars (without the price premium); things just work, they feel right and every now and again you get that “Oh, it does that too? Awesome!” feeling.” Stripes really does this, and for the diehard Apple fans in Yay, the Apple reference alone is reason enough to use it.

Other technologies

To make work, there are too many technologies involved to write in-depth about all of them. Here are the nuts and bolts of the open source microstock agency that is

• Eclipse The open source toolset Eclipse is used for developing the Java EE applications that are used.
• Apache ActiveMQ Apache ActiveMQ is a message broker that enables applications to talk to each other.
• Bucardo Bucardo is the open source Database Synchronization system built for PostgresSQL
• Bacula Bacula is the backup application that makes everybody at YayMicro sleep well.
• Apache Subversion Subversion is the revision control system used. A more modern version of the all-popular CVS.
• Wordpress is running on WordPress, (which means YayMicro is also using mySQL)

Click here to download a PDF-version.

-Bjorn Sjogren

Share Button

Test site launch


Yay! Finally, after months of delay (due to the change in CTO), we’re ready with a new site improvement!

Today we release the test server for public viewing and testing. We’ll keep the test server open, so if you want to follow the next upgrades and changes you can use the same link later on! (check it out on

In the future we’ll have small, but frequent changes to the site – and we have planned many improvements in 2009.




First of all – the most requested feature from our photographers have been views. And yes, this upgrade includes views! We have placed the views in your portfolios, and you can check it out now if you visit our test server. As customers in general are not interested in views, and it creates an imbalance in image exposure, we have not included views on the search result page.

We noticed that some photographers have a much more exposed portfolio than others, and we’ll try to make it easier for photographers to promote their portfolios. We’ll also work on our search algorithm, as we’re not satisfied with the relevance ranking and lack of shuffle when many images got the same properties.



UsabilityThe main focus in this release has been on customer usability and search engine optimization.

We have removed noise from the front, price and preview page and we’ve also improved the cart page. In the next release we’ll continue with improving the payment page and the flow of activities from arriving on the site till check-out.

In addition to removing noise we’ve made Call-to-Action buttons on many of the pages. This will help customer understand what the next step is on the site. (You shouldn’t have to look for the Buy-button.) We want the customers to search & buy images. The blog, forum and other pages are useful resources for returning customers, subscribers, photographers etc., but when in focus as it was on the old version of our site it became to distracting.  Also, it’s no longer possible to perform empty searches, as this generated confusion for the customers.

Our experience the last couple of months is that it’s difficult to communicate the difference in price for creative and editorial images, and the sale for editorial images has been much lower than the sale of creative images. The price for editorial images is therefore reduced, and is now the same as for creative images. This makes it’s easy to communicate our prices, and the customer won’t get confused or annoyed when one image costs more than another.




The site is fully translated to Norwegian. Soon we’ll release a Chinese version as well. Other languages are planned – and if you have any suggestions on what countries/languages could be a potential good market for YAY we’ll appreciate the feedback! It’s fairly easy to translate the site to other languages as most of the programming is in place now after the initial translation.

We have included several search languages, namely Norwegian, Swedish, Danish, English, Chinese, Japanese, French, Spanish and German. These are automatically translated with the help of the Google Translate API, so if you get any strange results – or no results – e-mail us and we’ll adjust the search.


Other improvements

New pages for price, FAQ (coming soon), photographers and prices. You’ll find the links at the bottom of the pages.

New links / new structure at the top of the site.

Improved preview site with a C2A-button, easier to search with image keywords, show/hide information related to the image.

Improved cart with a C2A-button, less noise, new lay out, easier to check out.

Improved Search Engine Optimization (SEO) for the whole site.

Customers get high-res images on subscription.

Some of the changes might take some time getting used to, but the overall experience of surfing the YAY-site has in our opinion improved a great deal!



As mentioned the test site will be kept open for the public. If you want to see what’s coming next, and join the discussion about changes, use it as much as you like. I’ll start a thread in the forum where we can discuss what’s going on. I would love feedback, and I’ll try to listen as much as possible to all our users. Of course, sometimes we’ll have to make some decisions that might not fly with everyone, but at least we’ll do our very best to explain our reasons.


Thats all for now, have a great weekend :)

Linda & Bjorn

Share Button

Recent trouble with uploading

Bug in the system

We’ve recently had some problems with uploading and I thought I’d just try to explain why this happened. I’m not a tech-guru, so you’ll have to excuse me if this is not 100 % correct.

The first issue started Januar 15th, was temporarily fixed for a few days, before returning, and then finally fixed on January 21st. This error had the unfortunate effect that people uploading using the web-interface all got an import failure stating “The file supplied wasn’t recognized”. The reason for this was a memory leakage in our system, which meant that the system used lots of memory which it basically just filled with junk. When this was discovered our system used over 26 GB of memory. We have now solved this issue, increased the memory available to the system and added additional swap files.

The second error started on February 3rd. What happend was that images that were approved did not get added the users portfolio or were made available for search. Neither we nor the photographer got any error messages about this. So, thank you for contacting us when you noticed something was wrong! The reason for this was a problem with allocation between distributed database-servers. This was caused by the fact that our system logs every query, and suddenly Google decided to run a ridiculous amount of queries which resulted in the systems log-files to get filled faster than our logrotating-system could handle. This has now been fixed. Google has promised to decrease the amount of queries, and we have decreased the rotation periode for logs.

If you uploaded images between February 2rd 08:00 am and Februar 4th 6:00 pm, some of your images might have not been added to the database. You can check this by logging in, clicking “portfolio” and see how many images are in your portfolio. Then compare this to how many images are listed under “Number of images” under “Sale statistics”. If these two numbers differ, please contact us and we’ll do our best to locate your images.


Share Button