A second look at Seafox – Wow!

I couldn’t help but take a second look at Seafox and I am really impressed.

In my last post I wrote it’s a squeak app, but that’s nonsense. There is a squeak app that runs on top of seaside and can serve the Seafox plugin for download, but in fact Seafox itself is just a Firefox plugin. [Update: The Squeak App displays a nice page with documentation on most Seaside-generated tags and is a nice showcase of jQuery usage – but it has some issues with some browsers on some operating systems]

If you’re not a Squeak / Pharo user, you can simply download Seafox from http://seafox.seasidehosting.st and click on the download-icon.

There’s not much to the plugin: it just adds a little seaside icon to your Firefox (just next to Firebug in my case 😉 ). Once it is installed you can visit any web page and click on the Seafox icon. It will convert the page you look at into two methods:

  • updateRoot for the html header (like meta tags or links to css files)
  • renderContentOn: for the html tags in the body.

Sounds simple and easy, he? But wait: if there’s JavaScript code on your page, it will also be converted to Smalltalk code. I’ve tried it with a hand-written page with a jQuery UI accordion on it (our company homepage).

How cool is that?

All you need to do now is visit your favorite page that you’d like to implement in Seaside, start Seafox and copy&paste the code into your smalltalk browser.

Well, there’s a lot more to do than that. You’ll have to find the places where Seaside puts in dynamic content and you’ll sure want to decompose a page into components and so on. But Seafox gives you a comfortable starting point for that.

So go and get Seafox!

Thanks a lot to Nick Ager for making this available. Great work, dude!


  1. I tried it on a couple of websites with no success – invalid code for some, debugger hangs for others. Nice idea, but I think it needs work.

    1. Joachim says:


      I’ve tried a few sites like Amazon.de, Tagesschau.de (German TV news), Google Reader, and Seafox generated output. Not all of it is nice, since there’s no way for Seafox to understand the implementation structure of the page. It just generates code that would show the same page. I’ve had no hangs or hickups.

      What I’ve found is that it can’t handle iframes (amazon) and it seems not to work for https-pages.

      As I’ve said: the code generated is a starting point to see how you could generate a certain structure. It’s not a ready-made Seaside component. But you can use it as a learning tool.

Comments are closed.