Technology
GuruHits ran on a classic Mac OS stack: Apple HyperCard as the quiz engine, called through an ACGI by the WebSTAR web server, with NetCloak handling the page templating. One person built and hosted all of it.
HyperCard as a web server
By the late 1990s the web ran on Perl CGI, ASP, and the new PHP. GuruHits ran on none of them. It ran on Apple HyperCard — the friendly 1987 "software erector set" meant for stacks of cards, not websites — pressed into service as a full web application server.
The trick was a chain of Mac-only software. WebSTAR answered the HTTP request. NetCloak handled
templating: it processed angle-bracket tags embedded in the pages on every request, so a .html file
could decide what to show based on the visitor, a cookie, or a score. And for anything dynamic — building
a quiz, scoring an answer, ranking a player — WebSTAR handed the request to a HyperCard stack acting
as an ACGI: the web request arrived as an AppleEvent, and HyperTalk built the reply. Browser → WebSTAR →
HyperCard → flat-file databases → audio library, and back again.
The NetCloak side of this has its own page (with the tag reference and a reusable PHP port of the engine), and the actual recovered HyperTalk is on The Stack. What follows is how the pieces fit together.
One giant stack
GuruHits did not run as a tidy set of small programs. Over time it became part of a single enormous HyperCard stack that also held LoveTest, a numerology service, horoscope tooling, mailing systems, user databases, and HTML templates — all in one file.
That wasn't sloppiness; it was a constraint. As Joe put it: NetCloak could only interact with one active HyperCard instance reliably — the frontmost stack won — so over the years the separate systems were merged into one giant stack so they could all be served. The architecture was dictated by how the plumbing actually behaved.
It was also genuinely fast. "It's still written in HyperCard," Joe wrote a couple of weeks after launch, "but it's able to handle 15 requests per second just on the HyperCard side." Fourteen years of HyperCard programming — CGIs, utilities, anti-virus tools, games — had gone into making the code that efficient.
Four audio formats before HTML5
There was no HTML5 <audio> element in 2001, and no single format every browser could play. So GuruHits
shipped each clip four times — as AIFF, AU, QuickTime MOV, and RealAudio — detected which player the
visitor had installed, and served the format that would actually play. "That was an enormous amount of
work for 600 songs."
The recovered correspondence even preserves the real-world split. In October 2001 the players broke down as 68% RealAudio, 15% AIFF, 11% AU, and just 6% QuickTime — a pity, Joe noted, since the QuickTime files were the smallest while sounding great. The whole library was sized accordingly: roughly 8,000 songs across the CD collection, at about 78 KB (AU) / 57 KB (AIFF) / 12 KB (RealAudio) / 7 KB (MOV) per clip — around 1.2 GB of sound in total.
Cutting all those clips by hand would have been impossible. When Joe first had the idea, no tool could extract the first few seconds from a large batch of songs — so he contacted AudioEase, the makers of the batch converter BarbaBatch, and persuaded them to add exactly that feature to their next release. They did. A one-person quiz project nudged a commercial audio tool into existence-enabling shape.
Skins
The same pages could wear different clothes. NetCloak selected a skin directory per visitor: an iTunes-styled skin by default, and a separate WebTV skin for WebTV clients — each providing its own header, footer, menu, and ad fragments. The iTunes look wasn't later nostalgia; it really shipped.
It also wasn't taken lightly. In June 2003, planning a redesign "to give the whole site the look-and-feel of iTunes and other iApps," Joe — a Mac user since 1984 and, by his own note, an Apple shareholder — wrote to Apple's copyright office to ask permission to use a brushed-metal, iTunes-style interface for the quiz. That brushed-metal skin is the one the reconstruction on this site still renders.
A rack of Macs on two continents
Behind the quiz sat a small, very physical infrastructure. In Belgium, a cluster of Macs shared a single 256 Kbps line: the web servers were two Power Mac G4/500s, a 7600/G3 and a G3/300, alongside an iMac that ran FileMaker for administration rather than serving pages. The HTML was served from those web machines and from a US facility; the heavy static files (images, movies, and all that audio) plus the banner-rotation system lived on a rented FreeBSD box co-located at Pair Networks in Pittsburgh, where Joe had been a customer since 1997.
The traffic was real — though it belonged to Joe's whole entertainment network, not GuruHits alone: the servers averaged 1,800–2,200 MB a day, spiking to nearly 3 GB (two million hits) after a busy weekend. Growth like that drove constant hosting questions — Cobalt RAQ versus a Linux box, this datacenter versus that — the unglamorous logistics of keeping a HyperCard stack online under load.
The stack that wouldn't modernise
About a year after launch, in October–November 2002, Joe began moving his wider network of NetCloak
sites off WebSTAR onto Tenon iTools — an Apache-based server on Mac OS X — where NetCloak ran through
Apple's redirect-acgi handler and later via FastCGI (the details are on the
NetCloak page). GuruHits' own quiz pages, though, did not make that jump — nothing
could run its HyperCard ACGI backend under Apache, so they stayed on WebSTAR.
But the old plumbing was hard to leave entirely. By 2003 the network was pushing around 100 NetCloak
hits a second on an Xserve, against several thousand NetCloak pages built up over years — and the
tempting move to Apache 2 was blocked because Apple had never shipped a redirect-acgi module for it.
The HyperCard ACGI bridge lingered precisely because rewriting all that NetCloak into PHP "takes a lot of
time and patience."
So GuruHits stayed legacy longer than almost anything around it. As late as 2004, while the rest of the network ran Apache 2, PHP, and MySQL on Xserve G5s, guruhits.com was still being served by an older PowerMac running Mac OS Classic — WebSTAR with a HyperCard CGI — simply because nothing could run that HyperCard backend under Apache. It was the same itch behind the 2001 aside about learning PHP, and the quiz's own engine outlived its era by years before that migration finally came.
