On Tuesday Google officially launched support for extensions in their Google Chrome browser. Zemanta released our extension simultaneously.
If you wonder how that had happened, here’s the story.
Part 1: The secret project
Nobody knows that the day after Chrome was first released on 2nd of September 2008 Zemanta started an internal project to create a Chrome extension. Idea was simple: be the first ever to create a Chrome extension! Our approach was sane – get a Windows hacker to figure out how to hack Chrome’s executable file. Incidentally we have seen a presentation in Kiberpipa about “DLL injection and API hooking” by Jan Berdajs (who helped us with IE extension before), so we picked up the phone and called him!
The beauty of Zemanta’s approach is that it needs only a few touch points with the browser – all we had to do was get three lines of html code inserted into documents that have URLs that match the pattern of blog editors (for example /wp-admin/post-new.php in case of WordPress). Jan just needed to figure out how to hack Chrome a tiny little bit, easy.
After a week of exploring we gave up. The main problem was that there were no hooks to hold on to. Chrome was compiled and built entirely statically (to achieve maximum performance), no dlls and no internal structure of executable was available. We could still do a disassembling or local-proxy hack, but the former was too resource intensive and the later would take the magic away. So the Chrome extension idea was put in the drawer for the time being.
Part 2: The bookmarklet
There’s this nasty thing with a start-up. You are supposed to have users. And even if your product is the best thing since sliced bread with peanut butter on top users will still find something more to ask for.
The idea is that if enough users ask for a certain thing, it might be a way to get even more of them using your product (and that’s a good thing in a startup). So people were nagging us that we only support Firefox, Internet Explorer, Windows Live Writer and server side installations of MovableType, WordPress, Drupal and Joomla. Why don’t you support Safari, Opera, Lynx, Netscape, Konqueror and yes – Google Chrome?
Since native support was not an option we needed some other way to deliver Zemanta to those users. A thing called “bookmarklet”! Very simple concept, it’s a bunch of JavaScript that runs when user wants it. There were some technical issues with lack of local storage for API keys, but almost nothing is impossible with the best JS developers in the world, so we had a bookmarklet released in March 2009.
You could say using Zemanta in this way defeats the idea of having the “blogger’s best friend” present all the time. But it is was better than nothing. And it made a lot of people really happy. Albeit our statistics showed that not many people used it regularly.
Part 3: The hack day
In August 2009 Zemanta’s team was working hard on a number of new features (getting Balloons out of the door). Everybody needed a break. And hackers sometimes take a break by hacking. Our head of front-end development Marko Samastur proposed to have a two day hackday where everyone would just play with the stuff he finds interesting, ignoring all the scheduled work and plans.
Gasper Koren decided to see if he can create native Google Chrome Zemanta extension (and Matjaz Horvat did the same for Mozilla Jetpack). By that time beta builds of Chrome already included preliminary extension support. But there was little if any documentation, so Gasper had to be a detective too – down to the browsing of Chrome source code. Eventually he did it. Lots of rough edges, but good enough to present it in front of everyone including the CEO on the third day of the hack day (three day long hack day is relativity theory applied to a startup).
You could see sparkles in the eyes. Or tears – another platform to add to the QA matrix. But at that time the extensions support in Chrome was still far away and our resources were poured into big Zemanta refresh which eventually launched on Monday December 7th. Remember that day. It is important to know that part 4 happens after weeks long marathon that led to the biggest Zemanta release since launch. Part 4 happens when everybody was finally hoping to exhale after getting to the finish line.
Part 4: Google calls
Well more precisely a nice guy from Google sends an email. Nick mailed us the afternoon of Monday December 7 (PST timezone) that Google is releasing Chrome Extensions the next morning. He has seen our investor Fred Wilson’s blog post mentioning that Zemanta has Chrome extension in the works and Nick wondered if we might have it ready for their launch – on the morning of next day in PST timezone.
What that meant was that Zemanta HQ in Slovenia had approximately 9 hours of the head notice to get the “hack day extension” ready for release! Marko Samastur took on the challenge. Last updates happened from Ales’s (the CEO) living room where the team has gathered to watch the Velocity conference online. Everybody helped test the extension. The rest is history.
Related articles by Zemanta
- Zemanta extension for Google Chrome (zemanta.com)
- Chrome Extensions Gallery Officially Opens [Chrome Extensions] (lifehacker.com)
- Google Chrome for Mac and Linux: They’re Here [Browsers] (gizmodo.com)


![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=98ca2116-0ad7-42f1-8fe6-aa64d2061ca3)