- exploring open-source Smalltalk libraries

Soek is a Smalltalk application that provides a different way to navigate through documentation and source code of a Smalltalk library. Instead of the classic multi-list browser view in an image, Soek offers a flat view on all methods and classes and is build using the Seaside Web framework.

  • missing image /2009/11/screen-shot-2009-11-13-at-6-33-24-pm.png

I discovered this way of publishing a framework when I worked with Rails and did most of my searches on Not only I could easily find a particular class or method, it also showed me similar methods, other implementations, classes and their sources. The learning effect was great and it became my standard search tool and recommendation to others.

Wanting this for the Smalltalk community too, I started creating the application Soek in Cincom WebVelocity to have a similar view on libraries such as Seaside, Glorp, Cloudfork and even my own projects. I figured out how to parse the comment, declaration and body of a method, defined new syntax highlighting rules for Smalltalk and integrated the client-side search javascript functions from, kindly provided by Brian Chamberlain.

Because most libraries that I use are pretty stable, those documentation pages can very well be cached. So to make this happen, I developed a Publisher component that can generate all static pages to files creating a documentation set for each library. Next, I created a public Amazon S3 bucket to host all these documentation sets. Finally, I added a Launcher application as the front-end for this bucket to select which library documentation to explore. Available library information (name,version, s3-url,site-url) is accessed from a Amazon SimpleDB domain using Cloudfork ActiveItem.

The result is now available at

The Soek application is made open-source under MIT license and published in the Cincom WebVelocity Community.

Update 1: Current version fails to work in IE (6+). Use any of Firefox, Safari, Chrome instead for the time being.

Update 2: Due to DNS problems might not be reachable. You can always use the alternative

Update 3: Soek has been discontinued. Source code will remain available on the Cincom Public Repo.

comments powered by Disqus