New in Blossom: Realtime Comments


From now on you can leave a card open and new comments from your teammates will instantly appear :)

Blossom is hiring

Happy to share that we’re looking for talent to grow the team :)


Please help us spread the word & send us all the awesome people you know — or apply yourself. This would really mean a lot to us.

We’re mainly looking for various engineering positions as well as someone to join as product marketeer / growth engineer. Work from anywhere :)


New Blog Series on Dart

Thomas is writing a series on why he fell in love with Dart.


Definitely subscribe to the series if you are into programming to find out more about how Dart relates to other languages and what makes it so elegant!

=> Subscribe to this series about Dart

New in Blossom: Recently Shipped Cards

Easily make retrospectives of your team’s recent progress with the new segment “Recently Shipped Cards” in Blossom’s Project Analytics

(Think: Weekly Retrospective, Standup-Meeting, Immediately have at hand what happened recently)

How to make your Websites Retina ready

Making your website ready for Retina displays doesn’t have to be a hassle. Whether you are building a new website or upgrade an existing one, this guide is designed to help you get the job done smoothly.


Make it Retina first

The easiest and most time-saving way to add retina support is to create one image that is optimized for retina devices and serve it to non-retina devices as well.

By now every modern browser uses bicubic resampling and does a great job with downsampling images. Here is a comparison of downsampling in Photoshop vs Google Chrome using an image from our Growth Engineering 101 website.

There are two ways to let the browser downsample images for you. Using img tags and using CSS background images.

If you have img tags serve the retina optimized image and set the width and height attributes to half of the resolution of the actual image (e.g. 400x300 if the image dimensions are 800x600).

<img src=”” width=”400” height=”300”>

If you use images as CSS background you can use the background-size property of CSS3 to downsample the image for non-retina devices.

<div class=”photo”></div>
.photo {
    background-image: url(retina-image-800x600-2x.png);
    background-size: 400px 300px;
    background-repeat: no-repeat;
    display: block;
    width: 400px;
    height: 300px;

In both cases make sure to use even numbers in both dimensions to prevent displacement of pixels when the image is being downsampled by the browser.

When downsampling is not good enough

Usually browser downsampling should work very well. That said there are some situations where downsampling in the browser might make images blurry.

Here we have a bunch of 32x32 px social icons.

And here is how they look like downsampled to 16x16px by Photoshop’s as well as Google Chrome’s bicubic filter. It seems like we get better results from Photoshop in this case.

To get the best results for our users we can create two versions of the same image. One for retina devices and another one downsampled by photoshop for non-retina devices.

Now you can use a CSS media query to serve retina or non-retina images depending on the pixel density of the device.

/* CSS for devices with normal screens */
.icons {
    background-image: url(icon-sprite.png);
    background-repeat: no-repeat;
/* CSS for high-resolution devices */
@media only screen and (-Webkit-min-device-pixel-ratio: 1.5),
only screen and (-moz-min-device-pixel-ratio: 1.5),
only screen and (-o-min-device-pixel-ratio: 3/2),
only screen and (min-device-pixel-ratio: 1.5) {
    .icons {
        background-image: url(icon-sprite-2x.png);
        background-size: 200px 100px;
        background-repeat: no-repeat;

If you use a background color for small icons on the other hand, downsampling by the browser works pretty well. This is the same downsampling example with white background.

Polishing your Downsampled Images

If you’re still not satisfied with the results from Photoshop’s downsampling you can go the extra mile and hand-optimize the non-retina version to get super crisp results.

Below are some examples of images from the Blossom product website that I hand-optimized for people on non-retina devices.

Borders & Strokes

Here is an example of downsampling issues with hairlines where I re-draw the lines of the downsampled image.

View the Retina Version of this Image on Dribbble.


Here is an example of downsampling issues with text. In this case I manually re-wrote the text “Feature Pipeline” to get to a crisp result.

Retina Version

When details, crisp fonts and clean hairlines are important you might want to go the extra mile.

Try to avoid Images

The main disadvantages of rasterized images are their big file size and that they don’t scale well to different sizes without affecting the image quality. Great alternatives to rasterized graphics are CSS, Scalable Vector Graphics (SVG) and Icon Fonts.

If you have any chance to build graphical elements of your website in CSS go for it. You can use it to add gradients, borders, rounded corners, shadows, arrows, rotate elements and much more.

Here are a few examples of interaction elements in Blossom that are implemented in CSS. The subtle gradient is powered by CSS gradients and the custom font in use on this button is Kievit served via Typekit. No images.

In the following screenshot the only two images used are the user avatar and the blue stamp. Everything else – the circled question mark, the dark grey arrow next to it, the popover, its shadow and the arrow on top of it are all pure HTML and CSS.

Here you can see how projects in Blossom look like. It’s a screenshot of a project’s website used as cover on a stack of paper sheets. The paper sheets are implemented with divs that are rotated using CSS.

Also the circled arrow in the righthand side of the screenshot below is pure CSS.

Here are some awesome tools that can help you to save time when you are creating effects using CSS.

CSS Generator:
Cross browser CSS3 syntax by @RandyJensen.

CSS Arrows:
CSS for tooltip arrows by @ShojBerg.

Generating CSS for Sprites:
Sprite Cow helps you get the background-position, width and height of sprites within a spritesheet as a nice bit of copyable css. It’s built by TheTeam and it’s a real time saver and definitely worth giving a try.

The main advantage of SVG is that unlike rasterized graphics they scale reasonably well to various sizes. If you have simple shapes they usually are also way smaller than PNGs and are often used for things like charts.

Icon Fonts are often used as a replacement for image sprites. Similar to SVG they can be scaled up infinitely without any loss of quality and are usually smaller in size compared to image sprites. On top of that you can use CSS to change their size, color and even add effects like shadows.

Both SVG and Icon Fonts are well supported by modern browsers.

Retina ready Favicons

Favicons are really important for users who want to have an overview about which website belongs to which browser tab. A Retina ready Favicon will not only be easier to identify but also stand out among a crowd of Favicons that are not optimized for high resolution devices yet.

To make your Favicon Retina ready I can highly recommend X-Icon Editor. You can either upload a single image and let the editor resize it for different dimensions or you can upload separate images optimized for each size to get the best results.

X-Icon Editor

How to make existing Images Retina ready

If you want to upgrade an website with existing images it is a bit more work as you need to re-create all images to make them Retina ready but this doesn’t need to be super hard.

First of all try to identify images that you can avoid by using alternatives like CSS, SVG and Image Fonts as mentioned previously. Buttons, Icons and other common UI widgets usually can be replaced with modern solutions that don’t require any images.

In case you actually need to re-create rasterized images you need to go back to your source files. As you might assume, simply resizing your rasterized bitmap images twice as big doesn’t get the job done because all the details and borders get pixelated.

But no need to despair – image compositions which mostly contain vectors i.e. in Adobe Photoshop or Illustrator are quite easy to scale up. That said don’t forget to check if your Photoshop effects in the blending options such as strokes, shadows and bevels still look as intended.

In general, making most Photoshop Compositions directly out of vectors (shapes) and Photoshop’s Smart Objects will save you a lot of time in the future.

How to optimize the File Size of Images

Last but not least optimizing the file size of all images in an application or website could effectively save up to 90% of image loading times. When it comes to retina images, the file size reduction gets even more important as they have a higher pixel density which also increases their file size.

In Photoshop you can optimize the image filesize via the “Save for Web” feature. On top of that there is an amazing free tool called ImageAlpha, which can reduce the filesize of your images even more with just a minor loss of quality.

Unlike with Photoshop you can use ImageApha to convert 24-bit alpha channel PNGs to 8-bit PNGs with alpha channel support. The icing on the cake is that these optimized images are cross-browser compatible and even work for IE6.

You can play around with different settings in ImageAlpha to get the right trade-off between quality and file-size. In the case below we can reduce the file size by almost 80%.

When you are done setting your desired compression levels ImageAlpha’s save dialog also offers you to “Optimize with ImageOptim” - another awesome free tool.

ImageOptim automatically picks the best compression options for your image and removes unnecessary meta information and color profiles. In the case of our stamp file ImageOptim was able to reduce our file size by another 34%.

After we’ve updated all assets of Blossom for high resolution displays and used ImageAlpha & ImageOptim to optimize the file size we actually ended up saving a few kb in comparison to the assets we had before.

Save Time, read this Book

If you want to learn more about how to get your apps and websites ready for retina displays I can highly recommend "Retinafy your web sites & apps" by Thomas Fuchs. It’s a straightforward step by step guide which saved me a lot of time and nerves.

Awesome Retina Ready Sites on the Web

Which of these 6 Product Team Antipatterns does your Team have

Last month I was at Silicon Valley Code Camp, where developers learn from fellow developers. It’s an event throughout a whole weekend held yearly (usually in October) at the Foothill College in Los Altos Hills, California. There was a long long list of speakers with loads of very interesting topics (#svcc on twitter) and a lot of volunteers helping out.

I attended a session called “Lean UX Anti-Patterns” by Bill Scott. He mentioned great productivity tips for product development teams in startups and enterprises which inspired me to share those and some of my thoughts with you. You can find the neat slides of Bill’s session at the end of this post. I’ll start right off now …

Being perfect

There’s nothing wrong getting a project to the point until all errors are fixed or until everything that bothers you is ironed out, in other words doing something until it’s perfect. But while bringing something to perfection, still seriously try to keep an eye on continuously delivering your changes. You don’t have to ship a completely perfect feature at a time, what for? Imagine yourself building something until perfection. You spend hours, months even years developing your baby, showing it to no one because you don’t want to disappoint people with a product which is lacking of features. After getting it out to the people you realize that they either don’t understand it in any way or don’t need it (anymore) because it was that time-consuming that the market has changed.

Instead of having that bad experience try shipping in smaller bits and steps. Just take care of that those simple bits work to a point that people can try it. You’ll get feedback earlier and you’ll might get aware of things you haven’t thought of much in the beginning. Don’t be afraid that people might don’t like it.

The most important thing is that you get your ideas out to the people and validate your assumptions as early as possible.

The earlier you get feedback you are able to pivot with less effort and prevent from building something into a wrong direction.

Not Enough Pizza

As teams scale up it gets harder to communicate and share knowledge with every single person. People tend to feel less accountable for what they are working on and devalued as the team is getting bigger. There is a good rule of thumb for team sizes:

“If you can’t feed a team with two pizzas, it’s too large.”

Depending on the appetite that usually makes teams at the size of 5 to 7 people. 
The term two-pizza team was originally coined by Amazon’s CEO Jeff Bezos while he transformed the companies product teams into small autonomous working task-forces.

Focus, communication, commitment, responsibility and self-coordination. All those principles become effective throughout every teammember in smaller teams.

You can read more about Amazon’s two-pizza teams in this FastCompany article.

Team Management with Emails

Communication between distributed team members can be a real challenge. If you have to work remotely email collaboration is usually not the best way to be productive. Chatting, making Skype- or Phone calls already offer better communication. But the most effective and best way to communicate is still a video call where both ends focus on the conversation and try to look into each others virtual eyes.

I’ve met somebody last week who told me that he is doing video calls regularly and if the person he is talking to looks at him while speaking, doing nothing else, it feels like a real conversation. The focus again is stronger and there is almost no loss of information.

That’s nice, but it doesn’t work for the Enterprise

Bill really inspired me by saying he is applying the principles of lean into his enterprise environment by starting with one pilot project, applying new habits and principles, going on with the next project and so on and so on. Slowly but surely lean thinking is understood and adopted, advantages are discovered and the team finds its own rhythm of development.

Especially in complex and settled environments, start with a pilot, learn and iterate.

Going dark

If one member of the team is working i.e. 5 days in a row on his own, shutting down for just straightly doing his tasks, collaboration with the team is obviously not that intense as it could be if you exchange thoughts in shorter and regular timeframes.

Communication and knowledge sharing is key for a good playing team.

Lack of communication could end up developing into a wrong direction, people are doing things twice or are unaware of product that changes might happen while working without communicating with the rest of the team. Big chunks of work are maybe already wired too complex to fix without much effort. A healthy communication culture is crucial for product teams to stay in sync. Without that it’s impossible to react to sudden changes or to go after new opportunities. Daily stand up meetings can help a lot with that.

Saying “No”

If you are the type of guy who is really visionary about future implementations or features in your project or product you know that your stream of ideas is never-ending. When it then comes to the point to share the idea with your team and there is someone who brings up half a dozen reasons that your ideas are not convertible or are fetched too far, it seriously decreases your and the whole team’s productivity. Assuming that your ideas will be vaporized by the naysayer anyway it narrows down your motivation to share them.

A reason for that might be, that at first sight the idea could be too overwhelming from the naysayer’s point of view. Explaining to break down the process into smaller steps, and explaining why that feature is important could be an approach to make everybody understand. The actual aim behind is to encourage every single team member being innovative and to come up with great individual ideas that eventually get implemented into the product.

In general, talking about the company culture regularly with the whole team empowers, connects and helps a lot to understand the reason why and how features are being implemented.

Have you made an experience based upon one of the topics mentioned above? Do you know some Lean Anti-Patterns everybody should be aware of? I’d love to hear your opinion.