It’s called Open Source

Two month ago we were happy to share with you that we not only released our sofa SDK as open source but also our entire web app as well.developer_view

But open source isn’t all equal. Some projects work behind closed doors and only release the source code for each new version as open source. I like to refer to that as readable source rather than open source.

On the contrary there are projects where the entire development process happens in the open. People can follow or even engage in discussions in the issue tracker to understand how the software is evolving. People can read the commits and learn from them rather than just see the final state of the code. And last but not least they can contribute by filing bugs, writing documentations or even code.

We strongly want sofa and our app to be of the latter kind. Until today, we didn’t fully achieve that. While sofa was 100 % open source our app was more like readable source. We released a snapshot of the code but at that time it wasn’t the repository that we internally used to continue with our work. We wanted to push something out to you as soon as possible but we still had lots of things to solve before.

So what was holding us back you ask? Mainly things that still need to be kept private :) While we want to take open source seriously we also want to take the privacy of our customers seriously. Our issue tracker was full of sensible information and so where parts of the repository, too.

As people started to send us pull requests to our public repository and the codebases kept on diverging, we felt more and more pain. As of today we are very happy to say that we sorted out all issues on our end so that the repository that you already know and use is the one and only repository that we use for the main development of our app.

This is an exciting step for us. We entirely open up. We want your contributions and we are excited to work with you.


The CouchCommerce Team

CouchTeam-15. Juli 2014_306


Sofa is here!

Lately we announced sofa, our open source SDK for eCommerce web apps. Sofa is a great starting point for developers and agencies to create e-commerce front ends based on superior web app technology.
Not only sofa has been released but we also open sourced our entire AngularJS web app including a great feature set. You can download it right now and get started in three easy steps!

To show you how you can work with sofa and to take a look behind the curtain our geniuses Christoph and Pascal hosted a webinar wich we recorded for you.

Content of the webinar:

  • download the basic app
  • walk through all app features
    • catalog browsing
    • category tree
    • shopping cart
    • search
    • image zoom
  • show how the app uses sofa components
    • usage as npm packages
    • show packages on github
    • talk about sofa-base and the slicing plan
  • look into sofa components
    • couchService
    • searchService
    • basketService
  • talk about future plans
  • QA (if any)

We hope that this first sofa webinar is useful to you and that you are excited to work with us! Feedback and questions are very welcome.

Online shop merchants diverge over responsive web design’s benefits

In a very recent article at Mobile Commerce Daily retailers gave feedback concerning their view on responsive web design pros & cons. I strongly recommend reading the article to catch some views on the topic from a merchant point of view.


“Responsive Web design was a big topic at eTail East 2014, with many retailers planning to launch responsive sites in time for the upcoming holiday shopping season while others insisted the strategy lacks the necessary customer focus to ensure success.

A key takeaway from the conference is that retailers are still struggling to figure out what works on mobile. The understanding is there that the mobile use case is different but how best to meet the needs of mobile users is still elusive.”

Here at CouchCommerce we see the value of a unified front end experience and are working towards extending our web app technology to desktop computers. This way a mobile first front end approach will be possible by utilizing one integration and being able to fully support the special needs of mobile.

First 3 days of Sofa – we are overwhelmed!

sofa SDK

Only three days ago we launched our open source Sofa SDK for e-commerce web apps and now we are really happy to share the first numbers with you:

All this within just 3 days is a great result for us and we are overwhelmed with the feedback and involvement of first contributors. We could even approve first contributions that improve Sofa for everyone!

Many thanks to everybody who got involved at this early stage and we are looking forward to the next weeks of working with you on first projects! And for all of you that like to see Sofa in the wild here you can find live projects based on Sofa.

p.s. find us on twitter, facebook and google+ :).

Launching our Open Source eCommerce Web App SDK Sofa – already chosen by our new Flagship clients Runtastic & Reno

Sofa is here!As you might know here at CouchCommerce we have been working for more than one year now towards releasing our e-commerce web app SDK called sofa. Today we are very happy and proud to announce that not only sofa has been released but we also decided to open source our entire AngularJS web app including a great feature set. You can download it right now and get started in three easy steps!

For developers and agencies this is a great starting point to create e-commerce front ends based on superior web app technology. Sofa cannot only be used to bring great touch driven user experience to smartphones and tablets but also covers in-store and even desktop use cases thanks to the almost complete coverage of modern browsers today. So we are moving towards a unified front end experience delivered by CouchCommerce!

developer_viewFrom today on merchants can start to work with one of our partners or in-house developers towards a customized web app experience based on sofa. We have published a API reference that should get you started in minutes. And in case you need help or training we are happy to assist.

Once a customized web app has been developed there are 3 ways to integrate, deploy and run it:


  1. You integrate 3rd party components yourself based on the GPL version of sofa & the web app
  2. You choose CouchCommerce Enterprise self-hosted and get our support, SLA and a MIT license of sofa & the web app
  3. You choose CouchCommerce Enterprise SaaS and utilize our platform integrations, scalability, SLA, updates, support and a MIT license of sofa & the web app

The beauty about sofa is that you can work with your highly customized web app in all 3 cases. Please have a look at our solution page for more information.

runtasticTo demonstrate the power of sofa in combination with the CouchCommerce Enterprise SaaS platform we are proud to announce that Runtastic launched with us to deliver the best smartphone shopping experience available to their 35 Million + users. You can read about it here. Runtastic is a great example for the impressive performance and scalability of single page web apps as we offer them with sofa.

logo_RenoAnd as if this would not be enough great news we are also very excited to be working on a unified front end experience based on sofa and the CouchCommerce Enterprise SaaS platform for Reno. This will cover smartphone, tablet, desktop and in-store through one unified front end experience. CouchCommerce will be directly integrated with IBM Websphere and deliver the front end experience. Our solution partner Projekteins is responsible for the customizations to sofa and working closely with the CouchCommerce team.

So please browse our brand new CouchCommerce and sofa websites to learn more about our exciting future and feel free to reach out to us with any question you might have.

Greetings from the whole CouchCommerce team!

CouchTeam-15. Juli 2014_306

New URLs for the CouchCommerce single page Web Apps

New CouchCommerce URLsLet’s talk about URLs today and how they affect CouchCommerce shops.

It’s been not too long ago that the URLs in our web app looked like this. (For category listings) (For product listings) (For product pages)

There are a couple of problems related to such URLs and there has been a steady demand from customers to improve on them. Let’s first outline what the problems are.

Search Crawler Visibility

WebApps work differently from Websites. A traditional website fetches HTML, Images[1], CSS[1] and JavaScript[1] every time that you click on a link to navigate through the pages. More precisely, the browser hits the server at the given URL to fetch such assets every time that the URL changes. In a WebApp there are no different server side pages but still we want link-ability. Therefore engineers recycled an old technique that has been around since the early days of web browsers.


This is an anchor:

Notice the hash before foo? This has been used for ages to direct the browser to jump to an element on the current page with the id foo. It is not part of the server side resource and therefore if you go from to the browser won’t hit the server because the actual resource did not change. Everything on the right hand side of the # character is only relevant for the local web page and changes do not trigger a HTTP request.

WebApps “abused” (and continue to “abuse”[2]) this fact and used such anchors for client side routing. A WebApp can react to changes to the right hand side of the hash to perform client side actions such as navigating to a different view. This is why a product page in the CouchCommerce WebApp was[2] accessed as until recently. It’s really nothing more than a good old local anchor though.

What’s not to like?

The problem with such URLs is that they lie to you. The content is just not there. The content is entirely constructed on the client side. In the browser. Search engine crawlers, however, don’t see the web as a browser sees it[3]. They only see resources on a server. Unfortunately we don’t have them. Just like a native web written in Java or Objective-C views are entirely created on the client[4].

Pushstate API to the rescue

The outlined problems lead browser vendors to agree on an API to address the issue. A new API called `pushState` lets us change the URL of the browser without causing the browser to hit the server. Remember that any change to the URL previously caused the browser to hit the server to fetch a new HTML document.

We changed our app to make use of the `pushState` if available[2] so that the URLs from above transformed into:

Are we crawlable yet?

Unfortunately, that alone does not address the search crawler concerns. It may assist on the bigger mission depending on which way to address the problem one decides to go. In our case though, we address the problem differently. We give hints to search crawlers where to find snapshots of the html. Each time a search engine wants to crawl a page of a CouchCommerce shop, we point it to another direction where it can request a previously created and cached snapshot. That’s a recommended technique by Google and deserves a blog post on it’s own.

URLs for human beings

Notice the bold parts of the URLs? Computers love such parts. They are great to deconstruct a URL and map it to an actual view. It’s easy for a machine to understand that the first URL is a category view, the second one is a product listing and the last one is a product page. Unfortunately humans unlike machines don’t care about such special identifiers. What people care most about is that URLs don’t change between desktop and mobile view.

A product page in the desktop shop accessed at should just transform into for the mobile shop. Just an extra `m.`[5] to get from the desktop to the mobile view.

We implemented exactly that so that any[6] valid desktop shop URL is automatically a valid CouchCommerce shop URL just served from a different subdomain.

You can see the URLs in action on our demo shop but we will soon roll that out to all our shops.

[1] Let’s not nitpick on caching here
[2] For older browser that don’t support the pushState API the URLs continue to use the hash based routing.
[3] That’s actually changing rapidly
[4] Albeit in a completely different fashion. Typically without HTML
[5] Or any other subdomain for mobile use. That’s up to the merchant.
[6] Well, not any. So far, it only works for category/product listings and product pages

The video comparison: responsive shop template vs. single page e-commerce web app

Bildschirmfoto 2014-06-18 um 11.44.00

Originally posted on Alexander Ringsdorff:

As I recently mentioned in a post shop merchants often approach me and ask about the difference between a shop with responsive templates and single page web apps like the ones we offer at CouchCommerce. Because written explanations are not exciting and cannot show all the differences in usability and app feeling we recorded a short video that I like to share with you.

The setup was an iPhone 5c connected to the 3G network. Using this smartphone we are opening the best RWD template available for Shopware and the latest demo web app from CouchCommerce. Both share the same inventory and products.

This was the exercise: open the shop via bookmark, navigate into the categories “Genusswelt” -> “Edelbrände” and select the product “Cigar Special 40%” to add it to the cart. Then go to the checkout and stop at the point where you start to enter personal information as a new customer.

Here is the…

View original 176 more words

CouchCommerce auf der Mobile Business Conference

MBC_300x250_w295_h246Next stop: Hamburg!

Am 23. & 24.06. findet die von der Internet World Business ins Leben gerufene Mobile Business Conference in Hamburg statt. Zwei Tage lang befassen sich Branchen Experten, Händler und Agenturen mit den Themen Mobile Marketing, Mobile Commerce, Apps & Co.

Auch wir werden selbstverständlich vor Ort sein und unseren mobilen Senf dazu geben ;)

Am 23. Juni um 14 Uhr könnt Ihr Alex Vortrag zum Thema: “Optimierung für Smartphones & Tablets am Beispiel von &“ lauschen. In dem Vortrag zeigen wir euch welche Herausforderungen Händler (in diesem Fall Arktis und Samova) durch Besucher mit Smartphones & Tablets haben und vergleich die möglichen Lösungsansätze Responsive Web Design, mobile Template, native App und HTML5 Web App miteinander.

Die Präsentation werden wir euch im Nachgang natürlich wieder bei Slideshare bereitstellen. Wenn Ihr nicht direkt vor Ort sein könnt, folgt uns einfach bei Twitter! Wir berichten live und in Farbe!

Bis bald auf einem der nächsten Events!

Der Videovergleich: Responsive Shop Template vs. Single Page Web App

Wie vor kurzem bereits in einem Beitrag angesprochen, werden wir regelmäßig nach den Unterschieden zwischen einem Shop Template mit Responsive Web Design und CouchCommerce Single Page Web Apps gefragt. Da die reine Erklärung etwas langweilig ist und besonders jetzt zu Zeiten der WM der Videobeweis sowieso hoch im Kurs steht, haben wir ein kleines Video aufgenommen:

Ausgangssituation ist ist ein iPhone 5c im 3G Netz. Mit diesem Smartphone rufen wir das empfohlene RWD Template für Shopware und eine aktuelle Single Page Web App von CouchCommerce auf. Beide Shops haben das Shopware Demo Sortiment und somit vergleichbare Inhalte.

Die Aufgabe in diesem Video: Den Shop über ein Lesezeichen aufrufen. Dann über die Navigation des Shops über zwei Ebenen “Genusswelten” und “Edelbrände” das Produkt “Cigar Special 40%” aufrufen, in den Warenkorb legen und bis zur Eingabe der Persönlichen Daten in den Checkout gehen.

Hier ist das Ergebnis:

Man sieht sehr gut, wie sich ein Template mit Responsive Web Design im Vergleich zu einer Single Page Web App verhält. Die Gestensteuerung gleicht bei Web Apps der Gestensteuerung von nativen Apps aus dem App Store, bei dem Template mit Responsive Web Design werden die Seiten allerdings wie bei einer normalen Website bei jedem Klick neu geladen. Selbst bei diesem kurzen Klickweg ist der Zeitunterschied enorm.

Bei den Test hatten wir guten 3G Empfang. Sobald hier jedoch eine schlechtere Verbindung vorliegt oder sie kurz unterbrochen ist, wird der Unterschied noch deutlicher.

Eine Auflistung der Vorteile einer Single Page Web App und Erklärung zur Funktionsweise finden Sie in diesem Beitrag.

Hier die Links zu den beiden getesteten Shops: Template RWD / Single Page Web App

Mobile Commerce Aufzeichnungen der Meet Magento 2014

Auf der vergangenen Meet Magento, die Mitte Mai in Leipzig stattfand waren auch wir vertreten und wurden gebeten einen Vortrag über mobile Commerce zu halten. Dies hat mein werter Kollege Kai übernommen und mit dem Vortrag “Practical Knowledge Mobile Commerce” den kompletten Raum gefüllt.

Vortrag Practical Knowledge Mobile Commerce

Der Vortrag befasst sich vor allem mit den Vor- und Nachteile der Technologien zur mobilen Optimierung und den Problemen sowie Lösungsansätzen für Händler und Agenturen.

Die Präsentation zu unserem Vortrag haben wir euch bei Slideshare zur Verfügung gestellt.

Da wir nicht die einzigen waren die einen Vortrag zum Thema mobile gehalten haben, findet Ihr im Folgenden noch zwei weitere sehr sehenswerte Vorträge.

Vortrag Magento powered Mobile Shop WebApp auf AngularJS

Dimitri Gatowski von Commerce Plus hat einen anschaulichen Praxisvortrag zur in Eigenentwicklung erstellten mobilen Web App Lösung für Smartphones gehalten, die mit AngularJS umgesetzt wurde. Er berichtet in seinem Vortrag “Magento powered Mobile Shop Web App auf AngularJS“, weshalb sich für die Web App Technologie mit AngularJS entschieden wurde und wie die Integration mit Magento funktioniert.

Die Slides zum Vortrag sind hier zu finden.

Vortrag One Page Shops mit Magento & AngularJS

Ein weiterer sehr interessanter und sehenswerter  Vortrag wurde von Vinai Kopp über Single Page Shops gehalten. In seiner Präsentation zu “One Page Shops mit Magento & AngularJS” zeigt er die einfache Umsetzung von Single Page Shops mit AngularJS und Magento auf.

Die Slides zum Vortrag von Vinai Kopp sind selbstverständlich auch verfügbar.

Ein paar lesenswerte Zusammenfassungen der Meet Magento gibt es hier:

Resumée zur Meet Magento 2014 in Leipzig #mm14de,
Meet Magento: Die spannendsten Eindrücke aus Leipzig
Das Magento-Klassentreffen 2014,
The Harsh Truth of Magento Enterprise (#mm14de),